software systems development 4: system design. simplified view on software product development...

Post on 01-Jan-2016

222 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SOFTWARE SYSTEMS DEVELOPMENT

4: System Design

Simplified view on software product development process

2

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

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

Documenting Architecture: Views Decomposition of the system into

elements

Relationships among elements and attributes of these elements

Run-time vs. Static decomposition?

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

A Functional View: Layered Style

An Information: View Entity Relationship Diagram

A Development View: Class Diagram

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

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

Software Quality

Run-Time Quality

Non-Runtime System Qualities

Business Qualities

Architecture Qualities

Domain Specific Qualities

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

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

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 OrganizationDefinition: availability of the human input, allocation of expertise, and alignment of team and software structure. Business process re-engineering

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. 

Our focus

Run-time: Functionality Non-runtime: Modifiability Business: Cost and Schedule Architecture: Correctness

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

top related