Announcements: - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

Announcements:

Description:

Ability to react appropriately to abnormal conditions. Extendibility ... assertion: condition at a certain point. invariant: condition that is always true ... – PowerPoint PPT presentation

Number of Views:33
Avg rating:3.0/5.0
Slides: 25
Provided by: sdfl
Category:

less

Transcript and Presenter's Notes

Title: Announcements:


1
Announcements
  • The blackboard vista (e-learning) site is
    available via goWMU
  • I will be changing my office hours. The new
    office hours are as follows
  • Wednesday 115-315 PM, Thursday 11-noon
  • All assignment submissions must run using Visual
    Studio 2008
  • Did someone leave their sunglasses last class?
    (If so, I might have them)
  • Is someone in this class typing their lecture
    notes? If so, please see me after class - thanks!

2
CS1120 C Review
  • Will be this Friday (9/05/08) from noon-2 PM in
    C-224 (same as lecture)

3
CS1120 Computer Science II
  • Software Life Cycle

4
What exactly is software?
  • Possible definitions of software are
  • Instructions (i.e., computer programs) executed
    to provide features, functions, and performance
  • Data structures that enable the programs to
    adequately manipulate information
  • Documents that describe the operation and use of
    programs

5
Categories of Software
  • System Software
  • Compilers, editors, file management utilities
  • Application Software
  • Standalone programs to solve a specific need
  • Engineering/Scientific Software
  • Computer-aided design, simulation
  • Web-applications
  • Embedded Software
  • Resides inside another product or system
  • Product-line Software
  • Inventory control, financial applications
  • Artificial Intelligence Software
  • Neural networks, pattern recognition, robotics,
    game playing

6
What is Software Engineering?
  • This is the study and use of engineering
    principles to create software that is both
    reliable and efficient on real computers

7
Software Quality
  • Software engineering is the production of quality
    software
  • External quality
  • May be detected by its users
  • Internal quality
  • Perceptible only to computer professionals who
    have access to the actual software text
  • What matters is the external quality, but it can
    only be achieved through internal quality

8
External Quality
  • Correctness
  • Perform the exact tasks as specified
  • Robustness
  • Ability to react appropriately to abnormal
    conditions
  • Extendibility
  • Ease of adapting program to changes of
    specification
  • Reusability
  • Ability of software elements to serve for the
    construction of many different applications.

9
External Quality
  • Other Quality
  • Compatibility, Portability, Ease of Use,
    Efficiency, Timeliness, Integrity
  • Tradeoffs
  • Integrity v.s. Ease of Use
  • Efficiency v.s. Portability
  • Timeliness v.s. Extendibility

10
The Waterfall Model
  • This is the classic life cycle
  • One of the oldest models in software engineering
  • A sequential and systematic approach to software
    development
  • Communication --gt Planning --gt Modeling --gt
    Construction --gt Deployment

11
Software Life Cycle
  • This is a more realistic look at software - as a
    continuous process

12
Software Life CyclePhase 1 Specification
  • Answers What do we build?
  • Define clearly all aspects of the problem
  • What is input (valid/invalid) data?
  • What assumptions are possible?
  • Are there special cases?
  • What enhancements are likely in the future?

13
Software Life CyclePhase 2 Design
  • Divide into manageable parts - modules
  • Specify each modules purpose, assumptions,
    input, and output
  • Develop algorithms
  • Look for existing software components

14
Software Life CyclePhase 3 Risk Analysis
  • Attempts to answer What can go wrong, and how
    bad can it be?
  • Predict and manage what risks you can
  • Risks to timetable, cost, human health, etc.
    should be taken into account
  • Risks can greatly influence the direction of a
    project

15
Software Life CyclePhase 4 Verification
  • Answers Are the algorithms correct?
  • Some algorithms can be proven correct
  • assertion condition at a certain point
  • invariant condition that is always true

16
Software Life CyclePhase 5 Coding
  • Translate the algorithms into a particular
    programming language
  • Minor phase in the software life cycle

17
Software Life CyclePhase 6 Testing
  • Answers Did we build it correctly?
  • Try to make the software fail
  • Develop as many test cases as possible
  • Both a science and an art

18
Software Life CyclePhase 7 Refining a Solution
  • Add bells and whistles
  • Retest after any changes are made

19
Software Life CyclePhase 8 Production
  • Distribute it
  • Install it

20
Software Life CyclePhase 9 Maintenance
  • Fix previously undiscovered bugs
  • Add new features
  • Enhance old features
  • Generally the most costly phase (80 of total
    cost by some estimates)

21
Software Life CycleDocumentation
  • Performed extensively in every phase
  • In modern software development, there are
    typically different people working on each phase
    of the software life cycle
  • Novice programmers usually undervalue
    documentation

22
Continuing Effort
23
More Models
  • There are many models of software development
  • Incremental Process Models
  • Incremental, RAD (Rapid Application Development)
  • Evolutionary Process Models
  • Prototyping, Spiral, Concurrent Development
  • Specialized Process Models
  • Component-Based, Formal Methods, Aspect-Oriented

24
The IN Method
  • Agile Development
  • This software engineering methodology focuses on
    customer satisfaction, incrementally developing
    software using small teams, using simplicity of
    development, and heavy communication with
    customers
  • There are many flavors including
  • Extreme Programming (XP), Adaptive Software
    Development (ASD), Dynamic Systems Development
    Method (DSDM), Scrum, Crystal, Feature Driven
    Development (FDD), and Agile Modeling (AM)
Write a Comment
User Comments (0)
About PowerShow.com