计算机代考程序代写 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

Leave a Reply

Your email address will not be published. Required fields are marked *