Download presentation
1
Software Engineering cosc 4359 Spring 2017
2
What Is Software Engineering?
According to IEEE, software engineering means applying engineering principles to the software field For software, this means applying a methodology to the software development process Software engineering methodologies have evolved over time Does all software require engineering?
3
Software Development Life Cycle (SDLC)
Distinct ordered phases (design, implementation, test) Each phase has activities (e.g., prototyping, documenting requirements, coding, testing) Each activity has deliverables (e.g., use case diagram, system diagram, code implementation, written test cases) Should be an iterative endeavor SDLC frameworks
4
The Process A variety of frameworks have been used over time
Waterfall (Since before 1970s) Structured Programming (1980s) Structured systems analysis and design (1980s, 1990s) Rapid application development (RAD) (1990s, 2000s) Scrum (Mid 1990s onward) Rational Unified Process (maintained by IBM since late 1990s) Large Scale SCRUM (Since late 1990s) Agile (Since 2005)
5
The Waterfall Process Requirements Design Implementation Verification
Installation Maintenance Time
6
Advantages of Waterfall
Enforces defined stages of development Non-technical managers like it because it has well defined start and end dates for each phase Finance people like it because costs can be budgeted Emphasis on requirements and design before writing code ensures minimal waste Some claim it is easier to catch design flaws during design rather than during coding
7
Disadvantages of Waterfall
First and foremost, customers don’t really know what they want up-front What customers want emerges out of repeated two-way interactions over the course of a project Assumes a initial design can be feasibly translated into real products. This is false; in most cases designs evolve during construction Waterfall is very much out of favor today
8
Customer collaboration during the entire life cycle
Small, well organized teams produce the best architectures, requirements and designs Customer collaboration during the entire life cycle Individuals and interactions over processes and tools Focus on quick responses to change Agile Working software over comprehensive documentation Early and continuous delivery of valuable software Responding to change over following a plan Daily cooperation between business people, customers and developers Welcome changing requirements, even in late development
9
Agile Disadvantages User time commitment
Schedules and costs are hard to predict Intense for developers Face-to-face meetings at international companies
10
Project Deliverables Deliverables that help the SDLC process
Requirements – A description of the software to be developed. Usually text, but serves as a tool to help develop use cases and user stories Use Cases/user stories – A list of actions, events or steps. Graphically defines the interaction between a role (actor) and a system to achieve a goal System Diagrams – A system engineering diagram that defines the major components in a system and the various entities that interact with one another. May include capabilities, inputs and outputs and depict data flows Project Plan – A formal document used to break a project down into small deliverable pieces. Defines a schedule and milestones for software development activities.
11
Project Knobs and Levers
Resources Software System Scope Schedule
12
When You Interview Accepted software development process
Organization culture Organization structure Who will be your customers? Ask the interviewer what he/she likes and doesn’t like about the current software process Understand the system you will be working on
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.