Class Notes (839,092)
Canada (511,185)
SE 101 (7)

Software Engineering Lecture 1.docx

8 Pages

Software Engineering
Course Code
SE 101
Edgar Mateos

This preview shows pages 1,2 and half of page 3. Sign up to view the full 8 pages of the document.
Software Engineering Lecture 1 & 2 September 18, 2012  Engineering design process 1. Recognition of need 2. Definition of problem 3. Definition of design criteria 4. Design loop  Synthesis  Analysis  Decision making 5. Optimization 6. Evaluation 7. If passes 8. Communication else 9. Definition of problem 10.Definition of design criteria 11.REPEAT  Customer requirements o Define the design problem from the perspective of the customer o Customer requirements are rarely specific  Convenient  Easy to sue  Simplistic o Customer requirements should specify a problem, not a solution  Design criteria o Performance standards to be met by the design o Should be specific  Max power consumption  Max noise level  Min transfer rate  Design constraints o Limitations placed on:  Designer  Final design  Manufacturing process o May be imposed by management, environment, or physical systems o Ex:  Total project development cost  Physical space constraints  Deadlines for successful completion  Synthesis, analysis, and decision-making o Form a design loop  Synthesis suggests ideas or methods to solve the problem  Analysis is calculating the expected result of each idea or method  Decision-making is deciding which alternative is best o Not uncommon t repeat the design loop multiple times o Each time the design loop I repeated, the design is further refined  Design review o Independent evaluation process o Evaluation teams attempt to answer:  Does the designer have a thorough understanding of the purpose and goals of the design?  Have all of the relevant requirements, criteria, and constraints been identified?  Is the overall design plausible for meeting the design objectives?  Does the overall design appear to meet the criteria specified?  Is the performance of the design adequate?  Are there any flaws?  Communication o The importance of communication is often under-estimated o All projects require effective communication between the designers, the managers, and the clients  In the absence of design reviews and frequent communication, everything is assumed to be going well  Without effective communication, expectations are unlikely to be met o Large projects require communication between groups and team members  Do all the team members understand how their components interoperate with other components in the overall design?  Do all team members understand the importance of maintaining the schedule? o Small projects require communication for the purpose of continuity  Reality check o In reality, design groups work concurrently o Development, design, manufacturing, quality control, and customer service tasks often require many groups to work together o Project management attempts to ensure that all groups work together as a cohesive unit  Time management is a key skill that is required of the successful completion of any large project o Deadlines are often imposed by external factors  Course deadlines are influenced by other courses, the time required to mark assignments, and the deadlines imposed by the Registrar for grade submission Software Design Process Future  Problem definition Improvements  Requirements development  Construction planning  High-level design Sytem Testing  Detailed design  Coding and debugging Construction  Integration testing  System testing  Corrective maintenance Architecture Requirements Problem Definition  Popular Models for software design o The software design process and the engineering design process are similar o There are many methodologies include the following  Waterfall model 1. Requirements 2. Specifications 3. Architectural design 4. Detailed design 5. Implementation 6. Testing 7. Maintenance  Concurrent engineering model  Spiral model  Extreme programming model o Discipline is required to follow a software design methodology  Concurrent Engineering Model o Permits simultaneous progress in different stages of design  Requirements  Specifications  Design  Implementation  Testing  Spiral Model o Iterates the stages o the design process until a satisfactory solution is found o All stages are performed in order o Using this model, a software project is split into many smaller projects  Each iteration corresponds with a smaller project  Many iterations required o Not all stages of the design process will require equal effort  For example, testing may require more effort than coding • Requirements/Specifications • Design • Testing • Coding  Extreme Programming Model o Resembles spiral model of development o Four founding values of extreme programming:  Communication  Feedback  Simplicity  Courage o Extreme programming utilizes refactoring in every iteration of the software design process • Requirements/Specifications • Design • Testing • Coding  Comparison of software design methodologies o Traditional methodologies for software design are plan-based  Plans work well if the design problem is static  If design goals change, the entire software design must be reconsidered o Agile methodologies such as extreme programming attempt to provide the flexibility to handle changing design goals  Extreme programming is a lightweight methodology that emphasizes simplicity  Simple designs can be changed easily  Project Scheduling o Recall the following definitions presented earlier while introducing the topic fo planning and estimation  PLANNING is the determination of all activities involved in a project or similar enterprise and their arrangement in a logical order  SCHEDULING is the assignment of the beginning and end times to the activities o A PROJECT SCHEUDLE is a timeline that summarizes the start dates and end dates for activities and identifies any known dependencies  Part of the project plan  Developed once all activities have been identified and arranged in a logical order  Effort vs duration o Effort refers to the total amount of work required to complete an activity  Typically measured in person-hours, person-days, or person-weeks  Effot is calculated by summing all fo the hours worked by every mmber of the team involved in completing the activity o DURATION refers to the total amount of time that elaspes …..  Overhead o In the context of project scheduling, refers to the amount of additional effort necessary to complete an activity due to project delays, dependencies, and activity coordination
More Less
Unlock Document

Only pages 1,2 and half of page 3 are available for preview. Some parts have been intentionally blurred.

Unlock Document
You're Reading a Preview

Unlock to view full version

Unlock Document

Log In


Join OneClass

Access over 10 million pages of study
documents for 1.3 million courses.

Sign up

Join to view


By registering, I agree to the Terms and Privacy Policies
Already have an account?
Just a few more details

So we can recommend you notes for your school.

Reset Password

Please enter below the email address you registered with and we will send you a link to reset your password.

Add your courses

Get notes from the top students in your class.