Systems Analysis and Design I

Slides:



Advertisements
Similar presentations
Database Planning, Design, and Administration
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Chapter 12 Review Questions
Programming Paradigms and languages
P5, M1, D1.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Moving from Analysis to Design. Overview ● What is the difference between analysis and design? ● Logical v. physical design ● System v. detailed design.
03/12/2001 © Bennett, McRobb and Farmer Class Design Based on Chapter 14 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis and Design.
03/12/2001 © Bennett, McRobb and Farmer Transition to Design Based on Chapter 12 of Bennett, McRobb and Farmer: Object Oriented Systems Analysis.
© Bennett, McRobb and Farmer 2005
© Copyright Eliyahu Brutman Programming Techniques Course.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Systems Design. Analysis involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and.
The Software Development Life Cycle: An Overview
The Design Discipline.
Requirements Elicitation. Requirement: a feature or constraint that the system must satisfy Requirements Elicitation: specification of the system that.
Database System Development Lifecycle © Pearson Education Limited 1995, 2005.
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Managing Software Quality
1 Shawlands Academy Higher Computing Software Development Unit.
1 BTEC HNC Systems Support Castle College 2007/8 Systems Analysis Lecture 9 Introduction to Design.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Question To know that quality has improved, it would be helpful to be able to measure quality. How can we measure quality?
SE: CHAPTER 7 Writing The Program
Systems Analysis and Design in a Changing World, 3rd Edition
I Power Higher Computing Software Development The Software Development Process.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
THE DESIGN WORKFLOW  Object-oriented design  The design workflow  The test workflow: Design  CASE tools for design  Challenges of the design workflow.
© 2010 Bennett, McRobb and Farmer1 Moving into Design Based on Chapter 12 Bennett, McRobb and Farmer Object Oriented Systems Analysis and Design Using.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
The Software Development Process
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Requirements Specification Document (SRS)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
DBS201: Data Modeling. Agenda Data Modeling Types of Models Entity Relationship Model.
Advanced Higher Computing Science
Object Oriented Systems Design
TK2023 Object-Oriented Software Engineering
Chapter 2 Object-Oriented Paradigm Overview
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
Chapter 1: Introduction to Systems Analysis and Design
The Development Process of Web Applications
Chapter 17 - Component-based software engineering
System Design and Modeling
Distribution and components
Abstract descriptions of systems whose requirements are being analysed
TIM 58 Chapter 8: Class and Method Design
The Object Oriented Approach to Design
File Systems and Databases
The Object-Oriented Thought Process Chapter 05
Thursday’s Lecture Chemistry Building Musspratt Lecture Theatre,
Software life cycle models
University of Houston-Clear Lake
Analysis models and design models
An Introduction to Software Architecture
SAMANVITHA RAMAYANAM 18TH FEBRUARY 2010 CPE 691
Chapter 2: Operating-System Structures
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 1: Introduction to Systems Analysis and Design
Software Requirements Specification (SRS) Template.
SDLC Phases Systems Design.
Chapter 17 - Component-based software engineering
Chapter 5 Architectural Design.
Chapter 2: Operating-System Structures
Chapter 1: Introduction to Systems Analysis and Design
Logical Architecture & UML Package Diagrams
Presentation transcript:

Systems Analysis and Design I Session 9 Move to Design

Recap

Today System Design Chapter 12 (pp. 347-360)

How is Design Different from Analysis? Design states ‘how the system will be constructed without actually building it’ (Rumbaugh, 1997) Analysis identifies ‘what’ the system must do The analyst seeks to understand the organisation, its requirements and its objectives Design specifies ‘how’ it will do it The designer seeks to specify a system that will fit the organisation, provide its requirements effectively and assist it to meet its objectives

<<entity>> 2. To record the details of each campaign for each client. This will include the title of the campaign, planned start and finish dates, estimated costs, budgets, actual costs and dates, and the current state of completion. Requirements Analysis Design Campaign title campaignStartDate campaignFinishDate estimatedCost completionDate datePaid actualCost getCampaignAdverts() addNewAdvert() createNewCampaign() getCampaignStaff() assignStaff() completeCampaign() getCampaignCost() recordPayment() <<entity>> – actualCost : Currency – adverts : Advert[ ] – campaignFinishDate : Date – campaignStaff : StaffMember[ ] – campaignStartDate : Date – client : Client – completionDate : Date – datePaid : Date – estimatedCost : Currency – manager : StaffMember – title : String – uniqueID : GUID + addNewAdvert(Advert) + assignStaff(StaffMember) + checkCampaignBudget( ) : Currency + completeCampaign( ) + getCampaignAdverts( ) : Advert[ ] + getCampaignCost( ) : Currency + getCampaignDetails( ) : String[ ] + getCampaignStaff( ) : StaffMember[ ] + getOverheads( ) : Currency + recordPayment(Currency) Add a new campaign Manager CREATE TABLE Campaigns (VARCHAR(30) uniqueID PRIMARY KEY NOT NULL, FLOAT actualCost, DATE campaignFinishDate, DATE campaignStartDate, VARCHAR(30) clientID NOT NULL, DATE completionDate, DATE datePaid, FLOAT estimatedCost, VARCHAR(30) managerID, VARCHAR(50) title); CREATE INDEX campaign_idx ON Campaigns (clientID, managerID, title); Analysis identifies the fact that the Campaign class has a title attribute Design determines how this will be entered into the system, displayed on screen and stored in a database, together with all the other attributes of Campaign and other classes

When Does Analysis Stop and Design Start? In a waterfall life cycle, there is a clear transition between the two activities In an iterative life cycle, the analysis of a particular part of the system will precede its design but analysis and design may be happening in parallel It is important to distinguish the two activities and the associated mindset We need to know ‘what’ before we decide ‘how’

Design in TLC Making a clear transition from analysis to design has advantages: staff skills—analysis and design may be carried out by different staff client decisions—the client may want a specification of the ‘what’ before approving spending on design choice of development environment—may be delayed until the analysis is complete Project management—is there the right balance of activities?

Seamlessness in OO A&D The same model—the class model—is used through the life of the project Analysis identifies classes which are refined in design, and the eventual programs will be written in terms of classes During design, different information is added additional detail is added to the analysis classes, extra classes are added to provide the supporting functionality for the user interface and data management Other diagrams are also elaborated in design activities

Logical and Physical Design Logical design is independent of the implementation language and platform Some design of the user interface classes can be done without knowing whether it is to be implemented in Java, C++ or some other language—types of fields, position in windows Physical design is based on the actual implementation platform and the language that will be used Some design can only be done when the language has been decided upon—the actual classes for the types of fields, the layout managers available to handle window layout Design is sometimes divided into two stages Logical design is concerned with those aspects of the system that can be designed without knowledge of the implementation platform; physical design deals with those aspects of the system that are dependent on the implementation platform that will be used.

Logical and Physical Design It is not always necessary to separate these into two activities But it may be useful if the software is to be implemented on different platforms Then it will be an advantage to have a platform independent design that can be tailored to each platform Model-Driven Architecture (promoted by OMG) generate platform-specific models (PSMs) from platform-independent models (PIMs)

System Design vs Detailed Design System design deals with the high-level architecture of the system structure of sub-systems distribution of sub-systems on processors communication between sub-systems standards for screens, reports, help etc. job design for the people who will use the system Object-oriented detailed design adds detail to the analysis model (mainly objects and classes) types of attributes operation signatures assigning responsibilities as operations additional classes to handle user interface additional classes to handle data management design of reusable components assigning classes to packages

Qualities of Analysis (sect. 7.2.2, pp.182-184) Correct scope: everything in the system is required Completeness: everything required is in the system and everything is documented in the models Non-functional req. should be documented even though they may not affect the analysis models directly. Correct content: accurate description of requirements Textual information, logic, business rules and diagrams Consistency: each element is consistently referred to by the same name

Qualities of Design (1) Functional: system will perform the functions that it is required to Efficient: the system performs those functions efficiently in terms of time and resources Usable: provides users with a satisfying experience (affordance, objects of UI suggest their function, reducing error rates) Reliable: not prone to hardware or software failure, will deliver the functionality when the users want it Buildable: design is not too complex for the developers to be able to implement it choice of the programming language

Qualities of Design (2) Manageable: easy to estimate work involved and to check of progress Economical: running costs of system will not be unnecessarily high Secure: protected against errors, attacks and loss of valuable data Flexible: capable of being adapted to different configurations, to run in different countries or to be moved to a different platform General: general-purpose and portable (mainly applies to utility programs) Maintainable: design makes it possible for the maintenance programmer (fixing bugs, migrating to new hardware, etc.) to understand the designer’s intention Reusable: elements of the system can be reused in other systems

Trade-offs in Design (1) Design frequently involves choosing the most appropriate compromise Design objectives may conflict with constraints imposed by requirements The requirement that the system can be used in different countries (by speakers of different languages) will mean that designers have to agree a list of all prompts, labels and messages and refer to these by some system of naming or numbering this increases flexibility and maintainability but increases the cost of design

Trade-offs in Design (2) Design to meet all the qualities may produce conflicts Functionality, reliability and security are likely to conflict with economy Level of reliability, for example, is constrained by the budget available for the development of the system Trade-offs have to be applied to resolve these It is helpful if guidelines are prepared for prioritising design objectives If design choice is unclear users should be consulted

Coupling and Cohesion: Criteria for Good Design Coupling describes the degree of interconnectedness between design components reflected by the number of links an object has and by the degree of interaction the object has with other objects Cohesion is a measure of the degree to which an element contributes to a single purpose Coupling and Cohesion are not mutually exclusive but actually support each other P 406 A series of criteria for structured design that could be used in breaking systems and programs down into modules to ensure that they are easy to develop and maintain.

Interaction Coupling A measure of Should be kept to a minimum to the number of message types an object sends to other objects, and the number of parameters passed with these message types Should be kept to a minimum to reduce the possibility of changes rippling through the interfaces, and make reuse easier When an object is reused, it will need to send these messages and hence needs objects that provide these services Require a group of classes to be reused rather than individual classes

Inheritance Coupling A degree to which a subclass actually needs the features it inherits from its base class

Operation vs Class Cohesion Operation cohesion measures the degree to which an operation focuses on a single functional requirement Class cohesion reflects the degree to which a class is focused on a single requirement

Specialisation Cohesion addresses the semantic cohesion of inheritance hierarchies Poor specialisation cohesion! The hierarchy has high inheritance coupling But it uses inheritance as a syntactic structure of sharing attributes and operations

Specialisation Cohesion– a better design

Take Home Messages The difference between analysis and design The difference between logical and physical design The difference between system and detailed design The characteristics of a good design The need to make trade-offs in design