This preview shows page 1. Sign up to view the full content.
Unformatted text preview: What is software?
Software is a set of items or objects that form a configuration that includes: Programs Documents Data Software Engineering
IEEE definition: 1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. 2. The study of approaches as in (1). Characteristics of software
Software is engineered Software doesn't wear out Software is complex Software is like an aging factory Types of software
System software Realtime software Business software Engineering/scientific software Embedded software PC software AI software Chapter 1 Reading
Sections 1.11.8 pages 1 35 Software challenges
How do produce quality software? How do we meet growing demand? How do we keep up with maintenance costs? How do we avoid disastrous delays? How do we institute new standards, technologies, etc.? Some important terms
Analysis vs. synthesis of a problem Method or technique: procedure for producing a result Tool: instrument or automated system for accomplishing something Procedure: recipe for combination of tools and techniques Paradigm: style of doing something Garvin's perspectives on quality
Transcendental view: something we recognize but can't define User view: fitness for purpose Manufacturing view: conformance to specification Product view: tied to inherent product characteristics Valuebased view: depends on customer's willingness to pay Key factors altering software engineering practice
criticality of timetomarket for commercial products shifts in economics of computing (lower HW, higher development/maintenance costs) availability of powerful desktop computing extensive local and widearea networking availability and adoption of OO technology graphical user interfaces unpredictability of waterfall model of development Wasserman's basis for good software engineering
Abstraction Analysis and design methods and notations User interface prototyping Software architecture Software process Reuse Measurement Tools and integrated environments Systems approach
Identify activities and objects. Define the system boundary. Consider nested systems, system interrelationships. A system is a purposeful set of interconnected components to solve a formal problem where each component can also be understood as a system. Dr. Longenecker Quality terminology
Error: human mistake Fault: result of mistake, evidenced in some development or maintenance product Failure: departure from the system's required behavior Building a house vs. software
Determining and analyzing requirements Producing and documenting the design Detailed specifications Identifying and designing components Building components Testing components Integrating components Making final modifications Continuing maintenance Requirements analysis and definition System design Program design Writing programs Unit testing Integration testing System testing System delivery Maintenance Staff: Kurt Brown Farooq Hafeez Mark Barton Alien Professors Why We Chose This Project...
We wanted something that was interesting to us We wanted a challenging project that would help us learn the software development cycle We wanted to create a game that other people could enjoy playing Lessons Learned
Things are easier if you have a working knowledge of it ahead of time Having group members with different specialties makes the development process flow better Having a shared vision is extremely important Why was this so interesting?
Various aspects of the project Graphical design Algorithm design Implementation Constant incremental improvement Team testing and evaluation User testing Receiving feedback from others Lessons Learned
Get started early Set realistic goals Find another way to do it More time for testing Information systems example
Piccadilly Television: regional British TV franchise Advertising constraints: alcohol adverts only after 9pm if actor in show, no same actor in advert within 45 minutes if advert in class of product, no other advert in same class during same break rates dependent on amount of time bought Software to determine, track advertising time Real-time example
Ariane5 rocket, from European Space Agency June 4, 1996: functioned well for 40 seconds, then veered off course and was destroyed Contained four satellites: cost was $500 million Reused code from Ariane4 rocket Ariane-5 definition of quality
From Lions report: "... demonstrated the high quality of the Ariane5 programme as regards engineering work in general and completeness and traceability of documents." "... the supplier of the SRI ... was only following the specification given to it. ... The exception which occurred was not due to random failure but a design error." ...
View Full Document
- Spring '06
- Software engineering