CS代考 SWEN90009 Software Requirement and Analysis

Software Design and Modelling
Subject Overview
Semester 2, 2021
“An ugly system is one in which there are special interfaces for everything you want to do. Unix is the opposite. It gives you the building blocks that are sufficient for doing everything. That’s what having a clean design is all about.”

Copyright By PowCoder代写 加微信 powcoder

― Linus Torvalds, Just for Fun: The Story of an Accidental Revolutionary

Aims & Objective
• The aim of the subject is to teach you about ‘Software Design’ and ‘Software Modelling’
• Software Design is all about purposefully choosing the behaviour and structure and of
your software system.
– System behaviour: how your systems responds to inputs and events
– System structure: how parts of the system collaborate to achieve the goals of the system
• Software Modelling is the creation of tangible, but abstract, representations of a system so that you can communicate your design ideas, critique them and explore viable alternatives

Why software modelling and design is important?
• A software model helps communication. It can be used as a shared artifact to share understanding about the system.
Without a software model
Developers

Why software modelling and design is important?
• A software model helps communication. It can be used as a shared artifact to share understanding about the system.
With a software model
A model Developers 7 Client (A tangible representation)

Why software modelling and design is important?
• Software design should improve simplicity and effectiveness of a software system as well as ease its maintainability

Why software modelling and design is important?
Software design should improve simplicity and effectiveness of a software system as well as ease its maintainability
• Softwareisabstract:relationshipsarenot limited by physical proximity.
• Withsomedesign:
• AllNcomponentsareinteractingwith
each other
• ThecomplexitywillbeKN:N*(N–1)/2
A software component
Dependency
9 https://en.wikipedia.org/wiki/Complete_graph

Example: Military Helicopter On-board Software
The software includes
• Navigation System
• Weapons Control System
• Communications System •…
Flight Control System (500 KLOC) Build1 (150 KLOC)
Subsystem (15 KLOC – 10% of Build 1, 100 Ada packages)
Flight Control System (Subsystem Build 1)
Each package in the cluster depends on every other package in the cluster.
High coupling → hard to understand → poor design

Lessons from from the case study
• Software complexity is a problem in practice, not just in principle
• Software developers tend to add to complexity unnecessarily if unconstrained
• Requiring developers to think through the implications of a structure/design change is important in maintaining a good design
• These issues are particularly critical in large projects

Software Modelling and Design subject
• The subject will focus on the object-oriented design method, with object-oriented modelling and modelling heuristics.
• UML (Unified Modelling Language) will be used as the primary modelling notation.
• Java will serve as the programming language to explore and validate the important
design ideas.
Assumed Knowledge
• Object-Oriented Programming
• Algorithms and Data Structures
• Java Programming
Relationship with Other Subjects
• SWEN90009 Software Requirement and Analysis
• SWEN90007 Software Design and Architecture
• SWEN40004 Modelling Complex Software Systems

Case Study 1: Point-of-Sale System (from Larman’s textbook) Point-Of-Sale (POS) is a system to record
sales and handle payments.
Includes hardware such as a register with bar code scanner and credit card reader, as well as software.
Features include:
• Interfaces to service applications, e.g. tax calculator, inventory control
• Fault-tolerant: at least capture sales and handle cash payments
• Flexibility in client-side terminals and interfaces
• Able to support different clients with different business rules, e.g. discounting policies

Case Study 2: Monopoly Game System(from Larman’s textbook) A Software Simulation of Monopoly
User starts off game and watches the activities of the simulated players.

Case Study 3: Tony’s Pizza System
The complete guided case study (with examples of models and tutorials)
A system that will eventually encompass all facets of the business of Tony’s pizza, at each location.
The system will be built incrementally, and we will be exploring the requirements of this system through software models and design principles throughout the semester.

Teaching & Learning
Assessment
One 1-hour lecture per week
Pre-workshop learning (self-study) A 30mins video for supp. materials
8% for Workshop active participation (Individual marks)
32% for 2 Project assignments (Group-based marks)
60% for Final examination
A 2-hour end-of-semester written examination
• Workshop
One 2-hours workshop per week Work on the exercises as a team
Exercises will correspond with the lecture content of the previous week
Workshop 1 on Week 2 will be related to the lecture content in Week 1
pass the subject, students must obtain at least 50% overall, 20/40 in project + workshop, and 30/60 in the final exam
Tony’s pizza: A completed guided case study (with examples and tutorials)
All the information and materials is available in the LMS

Teaching Team
(Subject Coordinator, Lecturer)

(Head Tutor)

Contact details are available on the LMS > Teaching team & Contact Hours

Lecture Identification
Semester 1, 2022
© University of Melbourne 2022
These slides include materials from:
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition, by , Inc., 2005.

程序代写 CS代考 加微信: powcoder QQ: 1823890830 Email: powcoder@163.com