330 likes | 547 Views
Software Specification KXA233 Lecture 1 Introduction, Product and Process Pressman Ch. 1, 2. Paul Crowther School of Computing University of Tasmania. Today…. Introduction to the unit Introduction to Systems Development The Product The Process. Assessment. Lab work 10% Database
E N D
Software SpecificationKXA233Lecture 1Introduction, Product and ProcessPressman Ch. 1, 2 Paul Crowther School of Computing University of Tasmania
Today… • Introduction to the unit • Introduction to Systems Development • The Product • The Process
Assessment • Lab work 10% Database • Assignment 1 10% Traditional • Assignment 2 10% Object Oriented • Examination 70%
Structure • 3 hours lecture • 1 hour database and design • 2 hours methodology • 1 hour lab • mainly Oracle database
Contact... • P.Crowther@utas.edu.au • Room V - 170 • Phone (6324) 3404 • Consultation • Monday 10.00 - 12.00 • Tuesday 9.00 - 11.00
Product • Software specification • Required for programmers to write software • Required for schema and subschema implementation
Products… (pg 5) • Early years (to mid 60’s) • batch oriented, custom built • Second era (to mid 70’s) • multiuser, real time • database, product software • Third era (to late 80’s) • distributed systems, embedded ‘intelligence • low cost hardware, consumer impact • Fourth era • desk top systems, OO technologies, expert systems • parallel computing, network computers
Product Problems... • Hardware advances outpace software • Demand for new programs exceeds supply • Increasing use and dependence on computers requires reliable stable software • Reliable quality software often seems a struggle to build • Support and enhancement of existing software is threatened by poor initial design
Impact of Change (pg 19) 60 - 100 X 1.5 - 6 X Cost to change 1X Definition Development After release
ACTIVITIES OF THIS UNIT (SDLC version) 3 WRITE USER MANUAL 4 7 IMPLEMEN- TATION DESIGN COMPLETED USER MANUAL 6 USERS CONVERT DATA BASE EXISTING DATA BASE SYSTEM REQUIREMENTS CURRENT SYSTEM SPEC CONVERTED DATABASE USER POLICY 2 1 9 DESIGN SPEC STRUCTURED SPEC INSTALL SYSTEM FEASIBILITY STUDY ANALYSIS INTEGRATED SYSTEM CONSTRAINTS TENTATIVE COST/BENEFIT SUMMARY COST/BENEFIT REPORT ACCEPTED SYSTEM 8 5 QUALITY ASSURANCE TEST SET MGMT PERFORM QUALITY ASSURANCE GENERATE ACCEPTANCE TEST
The Process • What is the problem to be solved • What are the characteristics of the solution • How will the solution be realized • How will the solution be constructed • How will errors be detected • How will it be supported over the long term
Key Process Areas • Basis for project management • Establish context to apply technical methods • Establish products to be produced • Establish milestones • Establish quality control
Models • Linear Sequential Model (classic SDLC), also known as the Waterfall Model • Prototyping Model • RAD Model • Incremental Model • Spiral Model • Component Assembly (Object Oriented) Model • Concurrent Development Model • Formal Methods Model • Fourth Generation Approach
STRUCTURED DEVELOPMENT LIFE CYCLE 3 4 2 1 DESIGN CODE ANALYSIS TEST LINEAR SEQUENTIAL MODEL
Problems With Linear Sequential • Real projects rarely sequential - iteration required • difficulty in user stating all requirements early • Working version of program not available until late in the life cycle • Developers often delayed - blocking states
Prototyping Model Build/revise mock-up Listen to User User test-drives mock-up
Prototyping Problems • User may be unaware it is a prototype which is unstable and want it NOW! • Compromises may be made to get a prototype working early - may be difficult to remove later
RAD (Rapid Application Development) Model • High speed adaptation of linear sequential model • Uses a component based construction approach • Requirements need to be well understood and technical risks low • Each component may have a separate RAD team
RAD • Business Modelling • Data Modelling • Process Modelling • Application Generation - assumes CASE tool usage • Testing and turnover - remember software reuse emphasised
Incremental Model • Evolutionary model • Applies linear sequences in a staggered fashion • Each sequence produces a deliverable • First increment is usually a core product - basic requirements are addressed, but many other requirements left unaddressed
3 3 3 4 4 4 2 2 2 1 1 1 DESIGN DESIGN DESIGN CODE CODE CODE ANALYSIS ANALYSIS ANALYSIS TEST TEST TEST Incremental Model Delivery of 1st increment Delivery of 2nd increment Delivery of 3rd increment Time
The Spiral Model • Couples prototyping with the controlled systematic aspects of the linear sequential model • Provides for rapid development of incremental versions • Software is developed as a series of incremental releases
The Spiral Model - Six Task Regions • User Communication • Planning • Risk Analysis • Specification (engineering) • Construction and Release • Customer Evaluation
Planning Risk Analysis User Communication Specification (Engineering) User Evaluation Spiral Model Construction and Release
Spiral Model • Model can be adapted to apply throughout a products lifecycle • Entry points on the axis between user communication and user evaluation • Concept Development • New Project Development • Product Enhancement • Product Maintenance
Component Assembly Model • Object oriented • Incorporates spiral model features • Composes applications from pre-packaged software components (classes) • Components are built if they are not available
Component Assembly Model Identify candidate components Look up components in library Extract components if available Construct nth iteration of system Put new components in library Build components if unavailable
Concurrent Development Model • Represented as a series of major technical activities and their associated states • May have same activities as the spiral model • Defines a network of activities
Concurrent Development Model Under development None Awaiting changes Under review Under revision Analysis Activity Baselined (Specified) Done
Formal Methods Model • Set of activities that lead to mathematical specification • provide mechanism for eliminating ambiguity, incompleteness and inconsistency • When used in design provide a basis for program verification • However poor communication model for most users • Require extensive training • Likely to gain adherents in safety critical applications
Fourth Generation Techniques • Uses code generators • often coupled to CASE (Computer Aided Software Engineering) yools • Reduces time for development of small systems • More analysis, design and testing required for large systems (but time saved on coding)
Next Week... • Tutorials start • Fact Finding • Interviews • Records • Observation