计算机代考程序代写 data structure Java flex finance javaFx Software Design and Construction 1 SOFT2201 / COMP9201 Introduction to Software Construction & Design – cscodehelp代写
Software Design and Construction 1 SOFT2201 / COMP9201 Introduction to Software Construction & Design
Dr. Grane School of Computer Science
The University of 1
Copyright Warning
COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING
This material has been reproduced and communicated to you by or on behalf of the University of Sydney
pursuant to Part VB of the Copyright Act 1968 (the Act).
The material in this communication may be subject to copyright under the Act. Any further copying or communication of this material by you may be the subject of copyright protection under
the Act.
Do not remove this notice.
The University of 2
Agenda
– Workplace Health and Safety
– Course Arrangements and Information
– Software Engineering
– Software Modeling
– TheUnifiedProcess
The University of 3
WHS Induction
The University of 4
Emergency procedures (on campus)
– In the unlikely event of an emergency, we may need to evacuate the building.
– If we need to evacuate, we will ask you to take your belongings and follow
the green exit signs.
– We will move a safe distance from the building and maintain physical distancing whilst waiting until the emergency is over.
– In some circumstances, we might be asked to remain inside the building for our own safety. We call this a lockdown or shelter-in-place.
– Further information is available at www.sydney.edu.au/emergency
The University of 5
Keeping our community safe
We can all help reduce the spread of COVID-19 through following good hygiene practices:
– Wash hands regularly, for at least 20 seconds with soap and water, or use an alcohol-based hand rub.
– Cover your mouth when coughing and sneezing with a tissue or a flexed elbow.
– Maintain a distance of at least 1.5m between yourself and others, where possible.
– Avoid large gatherings, where possible.
– Avoid close contact with anyone with cold or flu symptoms, e.g., fever, cough,
runny nose or shortness of breath.
The University of 6
Keeping our community safe
– All students and staff who have cold or flu symptoms should isolate themselves from others.
– If you are unwell with any symptoms, please excuse yourself from this class and get tested for COVID-19 as soon as possible. We will support you to continue the work remotely.
– Make sure you read the information on special consideration in the unit outline.
The University of 7
Keeping our community safe
– The University is following advice from the government and related public health authorities.
– For the latest information, see the advice on the University website.
– In some classes, especially those involving use of shared equipment, please
follow additional advice from your coordinators.
– Please take care of each other and yourselves and if you need support reach out to your unit coordinator or the health and wellbeing area of the Current Students website.
The University of 8
Tips for students learning online
– For tips and guides on learning online and the tools you will use, refer to Learning while off campus resources in Canvas.
The University of 9
Do you have a disability?
You may not think of yourself as having a ‘disability’ but the definition under the Disability Discrimination Act (1992) is broad and includes temporary or chronic medical conditions, physical or sensory disabilities, psychological conditions and learning disabilities.
The types of disabilities we see include:
Anxiety // Arthritis // Asthma // Autism // ADHD Bipolar disorder // Broken bones // Cancer Cerebral palsy // Chronic fatigue syndrome
Crohn’s disease // Cystic fibrosis // Depression Diabetes // Dyslexia // Epilepsy // Hearing impairment // Learning disability // Mobility impairment // Multiple sclerosis // Post-traumatic stress // Schizophrenia // Vision impairment
and much more.
Students needing assistance must register with Disability Services. It is advisable to do this as early as possible. Please contact us or review our website to find out more http://sydney.edu.au/study/academic-support/disability-support.html
The University of Services Office sydney.edu.au/disability 02-8627-8422
Page 10
Other support
– Learning support
– http://sydney.edu.au/study/academic-support/learning-support.html
– International students
– http://sydney.edu.au/study/academic-support/support-for-international-
students.html
– Aboriginal and Islanders
– http://sydney.edu.au/study/academic-support/aboriginal-and-torres-
strait-islander-support.html
– Student organisation (can represent you in academic appeals etc) – http://srcusyd.net.au/orhttp://www.supra.net.au/
The University of 11
Assistance
– There are a wide range of support services available for students
– Please make contact, and get help
– You are not required to tell anyone else about this
– If you are willing to inform the unit coordinator, they may be able to work with other support to reduce the impact on this unit
– E.g. provide advice on which tasks are most significant
The University of 12
Special Consideration (University policy)
– If your performance on assessments is affected by illness or misadventure
– Follow proper bureaucratic procedures
– Have professional practitioner sign special USyd form
– Submit application for special consideration online, upload scans – Noteyouhaveonlyaquiteshortdeadlineforapplying
– http://sydney.edu.au/current_students/special_consideration/
– Also, notify coordinator by email as soon as anything begins to go wrong
– There is a similar process if you need special arrangements, e.g., for
religious observance, military service, representative sports The University of 13
Academic Integrity (University policy)
–
“The University of Sydney is unequivocally opposed to, and intolerant of, plagiarism and academic dishonesty.”
– Academic dishonesty means seeking to obtain or obtaining academic advantage for oneself or for others (including in the assessment or publication of work) by dishonest or unfair means.
– Plagiarism means presenting another person’s work as one’s own work by presenting, copying or reproducing it without appropriate acknowledgement of the source.” [from site below]
– http://sydney.edu.au/elearning/student/EI/index.shtml
Submitted work is compared against other work (from students, internet, etc)
– Turnitinfortextualtasks(througheLearning),othersystemsforcode
Penalties for academic dishonesty or plagiarism can be severe
Complete self-education AHEM1001 (required, canvas → assessment info)
–
– –
The University of 14
Unit/Course Overview
The University of 15
SOFT2201/COMP9201 Lectures and Tutorials
– Lecture:
– Monday, 5pm to 7pm (AEST), Zoom (w1 to w13, public holiday excluded)
– Tutorial:
– SOFT2201: 2h tutorial, on Tuesdays and Wednesdays, Zoom (w2 to w13)
– COMP9201: 2h tutorial, on Thursday, Zoom (w2 to w13)
– Check your timetable
• Attend ONE (go to the tutorial you’re scheduled for) – Hands-on practical exercises
• Tutors to supervise your learning and provide guidance
The University of 16
Tips for students joining online
– Please mute your microphone when not speaking.
– Try not to talk over someone else.
– When you have questions during live lectures:
– if questions are public and can be read in recording mode, feel free to type them
on zoom chat and I will read and answer them during the lecture
– if questions are private, please use the contact hour
– When you have questions during tutorials:
– feel free to ask questions to tutors during group discussion or Q&A session
The University of 17
SOFT2201/COMP9201 Staff
Course Coordinator:
– Dr.
Lecturer:
– Dr. Grane – Consultation: Monday, 4pm to 5pm (AEST), Zoom
Tutor allocation can be found via Staff and Contact Details on canvas
The University of 18
SOFT2201/COMP9201 Resources
– Canvas (eLearning)
– Announcements (important)
– Modules: Copies of lecture slides, Tutorial instructions
– Assignments: Assignment instructions
– Recorded Lectures
• Lecture recordings (usually upload after 1~2 hours of the live lectures)
– Zoom: Live lectures, lecture question time, and tutorials
– Ed
The University of 19
• • • •
The best place to ask technical questions about the course.
Discussing non-assessed exercises, such as from tutorials, is encouraged. Don’t post your assignment code and ask what’s wrong with it.
You will get faster answers here from staff and peers than through email.
Prerequisites
– This course has the following prerequisites:
– INFO1113 OR INFO1103 OR INFO1105 OR INFO1905
– This means that we expect students who enroll in this course to be: – Confident Java programmers
– Familiar with data structures
– Prohibitions
– INFO3220 OR COMP9201 (for SOFT2201 students) – INFO3220 OR SOFT2201 (for COMP9201 students)
The University of 20
Main Resources
• We recommend the following textbooks
Link to USYD Library Link to USYD Library
The University of 21
Additional Resources
• We recommend the following textbooks
Link to USYD Library
Link to USYD Library
The University of 22
Topics Overview
Week
Contents
Week
1
Introduction; Software Engineering, Software Modeling, The Unified Process
2
OO Theory I: Java Knowledge Revisited
3
UML & Software Modelling Case Studies
4
OO Theory II: Software Design Principles and Design Smells
5
Design Pattern: Factory Method & Builder
Design Pattern: Strategy & State
6
7
Testing
Code Review
9
10
Design Pattern: Adapter & Observer
Design Pattern: Prototype & Memento
11
12
Design Pattern: Singleton, Decorator and Facade
13
Unit Review
The University of 23
Tutorial Work
– 2-hour tutorial work:
– Generally, 1hr 30 minutes tutorial content + 20 minutes Q&A session
– Check your schedule and allocation on the timetable
– Great opportunity for interactive and hands-on learning experience
– Respect your tutors and value their feedback
– Respect your classmates
– Tutors will supervise your learning, provide you guidance
– Not to debug your code, or solve the problems for you
The University of 24
Language and Tools
– Your coding will be in Java 11
– You will use IntelliJ for writing your code
– You will use JavaFX for designing your GUIs
– You will use supporting tools such as Gradle, Git, etc.
The University of 25
Assessment
What (Assessment)*
When (due)
How
Value
Weekly Exercises
Weekly
Submission on Canvas
10%
Software Construction Stage 1
Week 4
Individual Submission on Canvas
5%
Software Construction Stage 2
Week 8
Individual Submission on Canvas
15%
Software Construction Stage 3
Week 12
Individual Submission on Canvas
20%
Exam
Exam period
Individual exam
50%
The University of 26
Weekly Exercises
– Weekly exercises can be found under each week module on Canvas.
– Exercises cover contents from recent tutorials and lectures – Timeframe:
– Exercises and submission portals are released at 8am (AEST) Tuesday
– Exercises due and submission portals are closed at 23.59pm (AEST) Sunday
– You can do the exercise any time after it is open and before its due
– However,onceitisclosed,withoutSCON,youcannotre-takeitifyoumissit
– Total marks: 10%
The University of 27
Assignment
–
1. 2.
3.
Three individual assignments (40% marks):
Design a computer game using UML diagrams
– You are going to submit UML diagrams + recorded presentation (< 5 minutes)
Implement the computer game described in the UML using Java with JavaFX
– You are going to submit implementation code + report about the design principles/design
patterns in your implementation + recorded presentation (< 10 minutes) Test, review and extend code
– You are going to submit implementation code + report about the design principles/design patterns of the receiver code and your extensions + test cases + presentation recording (< 10 minutes)
The University of 28
Late Assignments
– Suppose you hand in your assignments after the deadline:
– If you have not been granted special consideration or arrangements
– A penalty of 5% of the available mark will be taken, per day late
• E.g., your work would have scored 60% and is 1 day late you get 50%
– Assignments after 10 calendar days late get 0
– Late penalty doesn’t apply to weekly exercises; you cannot re-take the exercise if
you miss it
– Warning: submission sites get very slow near deadlines
– Submit early; you can resubmit if there is time before the deadline
The University of 29
Online Final Exam
– 2hrs, will be organized by Exam Office during Exam period
– More details will be announced at the end of the semester (w13)
– Total marks: 50%
The University of 30
Passing this unit
– To pass this unit you must do all of these: – Get a total mark of at least 50%
– Get at least 40% for your final exam mark
The University of 31
SOFT2201/COMP9201 Expectations
– Students attend scheduled classes, and devote an extra 10 hours per week – Prepare and review lecture and tutorial materials
– Revise and integrate with ideas
– Carry on the required assessments
– Practice and self-assess
– Students are responsible learners
– Participate in classes, constructively
• Respect for one another (criticise ideas, but not people)
• Humility: none of us knows it all; each of us knows valuable things – CheckeLearningsiteveryfrequently
– Know the Uni/school policies The University of 32
Q&A and Feedback
– A discussion forum is setup:
– Please use ED for technical questions so that everybody can benefit from
the questions and answers
– Talk to us:
– Afterlectures/tutorials
– During teaching staff consultation
– Feedback to you will take many forms:
– Verbally by your tutor
– As comments accompanying hand marking of your assignment work and
exercises work
The University of 33
Advice
– Metacognition
– Pay attention to the learning outcomes in unit outline
– Self-check that you are achieving each one
– Think how each assessment task relates to these
– Time management
– Watch the due dates
– Start work early, submit early
– Networking and community-formation
– Make friends and discuss ideas with them
– Know your tutor, lecturer, coordinator
– Keep them informed, especially if you fall behind
• Don’t wait to get help – Enjoy the learning!
The University of 34
Advice for doing well in this unit
– To do well in this unit you should
– Organise your time well
– Devote extra 10 hours a week in total to this unit – Read.
– Think.
– Practice.
“Tell me and I forget, teach me and I may remember, involve me and I learn.” –
The University of 35
Why Software Engineering?
The University of 36
• • •
Societies, businesses and governments dependent on SW systems
• Power, Telecommunication, Education, Government, Transport, Finance, Health
• Work automation, communication, control of complex systems Large software economies in developed countries
• IT application development expenditure in the US more than $250bn/year1
• Total value added GDP in the US2: $1.07 trillion
Emerging challenges
• Security, robustness, human user-interface, and new computational platforms
Software is Everywhere!
1 Chaos Report, Standish group Report, 2014 2 softwareimpact.bsa.org
The University of 37
Why Software Engineering?
Need to build high quality software systems under resource constraints
• Social
• Satisfy user needs (e.g., functional, reliable, trustworthy)
• Impact on people’s lives (e.g., software failure, data protection)
• Economic
• Reduce cost; open up new opportunities
• Average cost of IT development ~$2.3m, ~$1.3m and ~$434k for large, medium
and small companies respectively3
• Time to market
• Deliver software on-time
3 Chaos Report, Standish group Report, 2014
The University of 38
Software Failure - Ariane 5 Disaster
What happened?
• European large rocket - 10 years development, ~$7 billion
• Unmanaged software exception resulted from a data conversion
from 64-bit floating point to a 16-bit signed integer
• Backup processor failed straight after using the same software
• Exploded 37 seconds after lift-off
Why did it happen?
• Design error, incorrect analysis of changing requirements, inadequate validation and verification, testing and reviews, ineffective development processes and management
http://iansommerville.com/software-engineering-book/files/2014/07/Bashar-Ariane5.pdf
The University of 39
Software Project Failures
Project
Duration
Cost
Failure/Status
e-borders (UK Advanced passenger Information System Programme)
2007 - 2014
Over £ 412m (expected), £742m (actual)
Permanent failure - cancelled after a series of delays
- Swedish Police case management (Swedish Police)
2011 - 2014
$53m (actual)
Permanent failure – scraped due to poor functioning, inefficient in work environments
US Federal Government Health Care Exchange Web application
2013 – ongoing
$93.7m (expected), $1.5bn (actual)
Ongoing problems - too slow, poor performance, people get stuck in the application process (frustrated users)
https://en.wikipedia.org/wiki/List_of_failed_and_overbudget_custom_software_projects
The University of 40
• • •
No - Essence and Accidents in Software Engineering
“There is no single development, in either technology or management technique, which by itself promises even one order-of-magnitude improvement within a decade in productivity, in reliability, in simplicity.” ! - . Brooks
Essence: difficulties inherent (or intrinsic) in the nature of SW Accidents: difficulties related to the production of software Most techniques attack the accidents of software engineering
Software Engineering - No 7
7 No - Essence and Accident in Software Engineering - http://www.itu.dk/people/hesj/BSUP/artikler/no-silver-bullit.pdf
The University of 41
Software Engineering - Essence7
• Complexity
• Many diverse software entities - interactions increase exponentially
• Intrinsic complexity cannot be abstracted - aircraft software, air traffic control
• Conformity
• Arbitrary changes from environment (people, systems) - no unifying principle
• Changeability
• Changing a building model vs. a software
• Stakeholders understanding of software changes
• Invisibility
• Software is intangible (invisible)
• Building model vs software models (UML - 13 diagram types)
The University of 42
What is Software Engineering?
The University of 43
What is Software Engineering?
http://www.purplesoft.com.au/wp-content/uploads/2017/03/software.jpg
The University of 44
Software Engineering
“An engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining it after it is has gone into use.”
• NOT programming/coding! a lot more is involved
• Theories, methods and tools for cost-effective software production
• Technical process, project management and development of tools, methods to support software production
• System Engineering (Hardware & Software) - software often dominates costs
The University of 45
Software Engineering
– Theories, methods, tools, techniques and approaches – Solve concrete SWEN problems
– Increase productivity of the engineering process
– Produce effective software
– Produce efficient software
– Control social and technical aspects in the development process – Manage complexity, changeability, invisibility and conformity
The University of 46
Software Engineering
“The Roman bridges of antiquity were very inefficient structures. By modern standards, they used too much stone, and as a result, far too much labour to build. Over the years we have learned to build bridges more efficiently, using fewer materials and less labour to perform the same task.” !
- (The Sum of All Fears)
• The art of managing social, economical and technical factors
• Efficient and effective development processes and management
• Delivering software on-time and on-budget with all the necessary requirements
• The art of analysing and managing complexity
• Ability to understand complex systems
• Apply various abstraction and analytical thinking
The University of 47
Software Engineering Fundamentals
• Software processes for managing and developing of SW systems • Waterfall vs. Incremental and agile software development
• Attributes of good software system
• Maintainability, dependability and security, efficiency and acceptability
• Importance of Dependability and Performance
• Need for specifications and requirements
• Software reuse to save costs
• Careful consideration – Ariane 5 reused software from Arian 4!
The University of 48
Software Engineering Body of Knowledge
• Software Requirements
• Software Design / Modelling
• Software Construction
• Software Testing
• Software Maintenance
• Software Configuration Management
• Software Engineering Process
• Software Engineering Tools and Methods
• Software Quality
Software Engineering Body of Knowledge (SWEBOK) https://www.computer.org/web/swebok/ The University of 49
Software Design/Modelling & Construction
The University of 50
Software Modelling
• The process of developing conceptual models of a system at different
levels of abstraction
• Fulfil the defined system requirements
• Focus on important system details to deal with complexity
• Object-oriented design approach
• Concepts in the domain problem are modelled as interacting objects
• Using graphical notations (e.g., UML) to capture different views or perspectives
The University of 51
Software Modelling – The Art of Abstraction
• Conceptual process to derive general rules and concepts from concrete information in a certain context
• Analysis and understanding of domain-specific problems
• Decompose large problems into smaller understandable piece
• Language required to break down complexity, i.e., find abstractions
• SW models with different levels of abstraction
• Focus on certain details in each phase of the SW development process
• SW models with different views/perspectives • Time, structural, requirements, etc.
The University of 52
Software Abstraction – Example
Real world
Software world
Abstraction
Animal
Dog Cat
Cat http://s1.thingpic.com/images/ZP/L4FtpQYKNZzCXV8r34PWhqCF.jpeg
Dog https://s7d2.scene7.com/is/image/PetSmart/SV0401_CATEGORY_HERO-Dog-Dog-20160818?$SV0401$
The University of 53
Data Abstraction – Example
View level
Logical level (conceptual data model)
Physical level (data model)
The University of 54
UML Principles
• Graphical notations to visually specify and document design artifacts software
systems using OO concepts
• Industry standard managed by Object Management Group (OMG)
• Is not OO Analysis and Design (OOA&D) or method!
• Is a language for OOA&D communicating visual models of the software being designed
• Is not a skill, but how to design software with different level of abstractions
• Many software diagraming tools, hand sketches are good too
• Combines techniques from data modeling (ER diagrams), business modeling (workflows), object and component modeling
• Capture system activities (jobs), system components and its interaction, software entities and its interaction, run-time behavior, external interfaces
The University of 55
UML Principles (Cont.)
•
UML is not “ ”
• No tool/technique in software will make dramatic order-of-magnitude difference in
productivity, reliability or simplicity
• Design knowledge and thinking in objects is critical
Three ways to apply UML
• Sketching to explore part of the problem or solution space
• Blueprint: detailed design diagrams for:
• Reverse engineering to visualize and understand existing code
• Forward engineering (code generation)
• Programming language (Model Driven Engineering): executable specification of a system
“Agile Modeling” emphasizes UML as a sketch
• Not waterfall mindset
•
•
The University of 56
UML Diagrams
Structural (static) View
• Static structure of the system (objects, attributes, operations and relationships)
Behavioural (dynamic) View
• Dynamic behavior of the system (collaboration among objects, and changes to the internal states of objects)
• Interaction (subset of dynamic view) - emphasises flow of control and data
https://en.wikibooks.org/wiki/Introduction_to_Software_Engineering/UML
The University of 57
The Rational Unified Process
The University of 58
Iterative and Evolutionary Development
Requirements Design
Implementation & Test & Integration & More Design
Final Integration & System Test
Requirements Time Design
Implementation & Test & Integration & More Design
Final Integration & System Test
Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.
3 weeks (for example)
The University of 59
Iterations are fixed in length, or timeboxed.
The system grows incrementally.
Rational Unified Process (UP)
• Software development process utilising iterative and risk-driven approach to develop OO software systems
• Iterative incremental development
• Iterative evolutionary development
The University of 60
UP Phases and Disciplines
Sample UP Disciplines
Business Modeling
Requirements
Design
Implementation
incep- elaboration tion
construction
transi- tion
The University of 61
...
...
The relative effort in disciplines shifts across the phases.
This example is suggestive, not literal.
UP Phases and Disciplines
iteration
development cycle phase
ela
borat
ion
con
struction
The University of 62
inc.
milestone
An iteration end- point when some significant decision or evaluation occurs.
release
A stable executable subset of the final product. The end of each iteration is a minor release.
increment
The difference (delta) between the releases of 2 subsequent iterations.
final production release
At this point, the system is released for production use.
transition
•
Imagine this will ultimately be a 20- iteration project.
In evolutionary iterative development, the requirements evolve over a set of the early iterations, through a series of requirements workshops (for example). Perhaps after four iterations and workshops, 90% of the requirements are defined and refined. Nevertheless, only 10% of the software is built.
UP - Example
Iterative and evolutionary analysis and design
• First five iterations of 20
• 3-week iteration
1 2 3 4 5 ...
20
The University of 63
kickoff meeting
clarifying iteration
goals with the team. design, 1 hour UML
whiteboard sketching. 5 hours
requirements workshops
requirements software
requirements software
30%
20% 5%
2%
Iteration 1 Iteration 2
8%
20%
Iteration 5
M T W Th F
week 1
week 3
M T W Th F
start coding & testing
M T W Th F
team agile
de-scope iteration goals if too much work
final check-in and code- freeze for the iteration baseline
Use-case modeling during the workshop
demo and 2-day requirements workshop
next iteration planning meeting; 2 hours
modeling &
a 3-week iteration
Most OOA/D and applying UML during this period
50%
90% 90%
10%
Iteration 3
week 2
Iteration 4
Software Construction / Implementation
• Realisation of design to produce a working software system • Meet customer requirements
• Design and implementation activities often interleaved • Agile development to accommodate for changes
• Object-Oriented design and Implementation model
• Encapsulation • Abstraction
• Reuse
• Maintenance
The University of 64
Software Engineering
http://themetapicture.com/media/funny-software-engineer-comic.jpg
The University of 65