Presentation is loading. Please wait.

Presentation is loading. Please wait.

SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.

Similar presentations


Presentation on theme: "SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning."— Presentation transcript:

1 SOFTWARE SYSTEMS DEVELOPMENT 4: System Design

2 Simplified view on software product development process 2 Product Planning System Design Project Planning Project Execution Deployment, support an maintenance

3 Why do we need the design phase?  Make sure requirements are feasible  To plan and estimate the work to be done  Communications (development teams/support/customer etc.)  Prepare for change

4 Software Architecture  “Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled”.  “Architecture is everything that is expensive to change later”  Communications=>Documentation

5 Documenting Architecture: Views  Decomposition of the system into elements  Relationships among elements and attributes of these elements  Run-time vs. Static decomposition?

6 Architecture: Views  Multiple views to capture different aspect of the system:  Functional: elements and connectors  Information: data entities and relationships  Development: layers and modules  Concurrency: processes and threads  Deployment: hardware, network

7 A Functional View: Layered Style

8 An Information: View Entity Relationship Diagram

9 A Development View: Class Diagram

10 Architecture Evaluation  Make sure there is a flow in functional view for each software requirements (SRS)  Make sure there is required set of classes/modules in development view  Make sure all required data is present and maintained correctly

11 Some important points  Detalization -Abstraction trade-off  Development view has enough information for reliable estimation of work to be done  Prepare to change  Run “what-if” analysis on the architecture. See scope and place of changes  Knowledge reuse  Architecture styles(client-server, multitier) and patterns

12 Software Quality  Run-Time Quality  Non-Runtime System Qualities  Business Qualities  Architecture Qualities  Domain Specific Qualities

13 Runtime System Qualities  Functionality Definition: the ability of the system to do the work for which it was intended.  Performance Definition: the response time, utilization, and throughput behavior of the system. Not to be confused with human performance or system delivery time.  Security Definition: a measure of system’s ability to resist unauthorized attempts at usage or behavior modification, while still providing service to legitimate users.  Availability Definition: the measure of time that the system is up and running correctly; the length of time between failures and the length of time needed to resume operation after a failure.  Usability Definition: the ease of use and of training the end users of the system. Sub qualities: learnability, efficiency, affect, helpfulness, control.  Interoperability Definition: the ability of two or more systems to cooperate at runtime

14 Non-runtime  Modifiability Definition: the ease with which a software system can accommodate changes to its software  Portability Definition: the ability of a system to run under different computing environments. The environment types can be either hardware or software, but is usually a combination of the two.  Reusability Definition: the degree to which existing applications can be reused in new applications.  Integrability Definition: the ability to make the separately developed components of the system work correctly together.  Testability Definition: the ease with which software can be made to demonstrate its faults

15 Business Qualities  Cost and Schedule Definition: the cost of the system with respect to time to market, expected project lifetime, and utilization of legacy and COTS systems.  Marketability Definition: the use of the system with respect to market competition.  Appropriateness for Organization Definition: availability of the human input, allocation of expertise, and alignment of team and software structure. Business process re- engineering

16 Architecture Qualities  Conceptual Integrity Definition: the integrity of the overall structure that is composed from a number of small architectural structures.  Correctness Definition: accountability for satisfying all requirements of the system.

17 Our focus  Run-time: Functionality  Non-runtime: Modifiability  Business: Cost and Schedule  Architecture: Correctness

18 SDD Document: 3 pages/diagrams  Functional (Logical) Architecture diagram  ER Diagram  Class diagram including major classes (top 10 or less) with top 5 methods/attributes per class


Download ppt "SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning."

Similar presentations


Ads by Google