Systems Design. Analysis involves understanding and documenting user requirements in a clear and...

22
Systems Design
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    1

Transcript of Systems Design. Analysis involves understanding and documenting user requirements in a clear and...

Systems Design

Analysis

• involves understanding and documenting user requirements in a clear and unambiguous way. It focuses on the business side and getting the requirements clear.

• Design is about how the new system will meet the requirements.

Good analysis

• Correct scope – clearly understood, documented and agreed with clients.

• Completeness – everything within scoped system should be documented.

• Correct content – documentation correct and accurate

• Consistency – no ambiguity

Design

• is about translating the analysis model into a design model that effectively implements the requirements.

• The focus here is on the technology side and thus effective design should make a system easier to build and more usable and functional for the end-users.

Design Quality

• The designer will be working within a framework of quality criteria, design and development standards, constraints, and be trying to achieve measurable objectives that are specific to the particular system.

Aspects of Design

• OO Detailed Design – software design

• Database Design

• User Interface Design

• Systems (architectural) design

Design can take place at several levels.

• System design is more concerned with architecture

• Detailed software design is concerned with coding

• User interface design is concerned with usability

• Database design is concerned with data integrity, avoiding duplication, and performance

Objectives of Software Design• Functional – does what is required• Efficient – in terms of time and resources• Economical – in terms of money and system resources• Reliable – hardware/software failure, data integrity –

testing important here• Secure• Flexible – configurability, modifiability• Portability- easy to adapt to different platforms• General – is the system general purpose?• Build-able- easy to code and build• Manageable• Maintainable- easy to fix, change, adapt• Usable- easy to use, can achieve desired goals, efficient• Re-usable- code can be re-used easily

How can re-usability, flexibility, maintainability etc. be achieved?

• 2 core principles of software design

• Coupling and Cohesion

Basic Software Design Criteria: Cohesion• Cohesion is a measure of the degree to which

an element adheres to a single purpose. • Good cohesion –software modules ( sections

of code) carry out a clearly defined process or group of processes that are functionally related to one another.

• It does what it says on the tin … and nothing else.

Basic Software Design Criteria: Coupling– degree of interconnectedness or dependency

between modules.• Coupling should be minimal. • The aim is to produce modules which are

independent and can be amended without producing knock-on effects to the rest of the system.

Cohesion in an Object Oriented Design

• Cohesion is the extent to which a class or operation relates to a single purpose.

• Operation cohesion – 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 – the semantic cohesion of inheritance hierarchies.

• Liskov Substitution Principle – should be able to treat a derived object as if it were a base object.

Coupling in an Object-Oriented Design

• Coupling is the interconnectedness between components.

• This is reflected by the number of links an object has and the degree of interaction an object has with other objects.

• Inheritance coupling describes the degree to which a subclass actually needs the features it inherits.

• Interaction coupling measures the amount of message types an object sends to other objects and the number of parameters passed with these message types.

• Minimising coupling makes reuse easier : Why?

address

NumberStreetTownCountyCountrypostcode

Person

NameAgegender

Company

NameIncomeprofit

Poor Specialisation cohesion(Mc Bennett et al p385)

Is this cohesive?Vehicle

Serial numberModelYear

Getdetails()

New Vehicle

NameManufacturerBase Cost

Getdetails()

Trade in vehicle

Make

Getdetails()

Does the patient need the features it inherits?

Staff member

NameAddressDobRoleSalary

patient

condition

doctor

roster

Is this cohesive?Bank account

ID numberbalance

Getbalance()Lodge()Withdraw()

Current account

Overdraft limitInterest_rate

setoverdraft()Chargeinterest()

Deposit account

Deposit interest rate

addinterest()

Is this cohesive? Does it show inheritance coupling?

Current account

ID numberbalanceOverdraft limitInterest_rate

Getbalance()Lodge()Withdraw()setoverdraft()Chargeinterest()

Deposit account

Deposit interest rate

addinterest()

Logical and Physical design

• Design of the systems architecture will determine some of the choices that are made at lower levels.

Summary

• Design needs measurable objectives SMAC