logging in or signing up se methods 2003 Irvette Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 275 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: November 07, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide1: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering ivica.crnkovic@mdh.se http://www.idt.mdh.se/~icc Contents: Contents What is Software Engineering? Software Engineering and Science Methods of Software Engineering Software Engineering Research Example – Software architectureWhat is Software Engineering?: What is Software Engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after gone into use. Ian Sommerville, Software Engineering We need further explanation of: Engineering discipline All aspects of software productionEngineering: Engineering Engineers make the things work Solving problems understand the problem analyze the problem Find solutions Constructing the solution from parts that address the problem's various aspects - do a synthesis To achieve the goal engineers apply theories, methods and tools from different disciplines Search for solutions even when there is not theory or methods Analysis of a problem: PROBLEM Subproblem 1 Subproblem 3 Subproblem 2 Analysis of a problem Identify different aspects of the problem Arrange the problems in clearly defined and understandable sub-problems The synthesis: Solution 1 Solution 3 Solution 2 Solution 4 The synthesis Find solutions for subproblems Put together solutions to a consistent view Provide (make) a solution Engineering Example – the Vasa Ship: Engineering Example – the Vasa Ship 1625 King Gustav II Adolf decided to start build Wasa 1628 - maiden voyage. Length- 69 metres Maximum width - 11.7 metres From keel to the top of the main mast - 52.5 metres Height of the stern - 19.3 metres Crew: 445 men, Seamen – 145, Soldiers - 300 Armament 64 guns Thousands of people involved in the project Selecting wood, building different parts Providing food, other services A master piece of work! Vasa – Example of Bad Engineering: Vasa – Example of Bad Engineering the ship capsized on her maiden voyage in the harbor of Stockholm. Why did the Vasa capsize? Why did the Vasa capsize? : Why did the Vasa capsize? The Vasa capsized because it was not stable; The Vasa capsized because the building process (or in terms of software engineering, the development project) was inadequate. How to calculate stability?: How to calculate stability? The forces are of equal size and in the opposite directionsThe ship heels at an angle: The ship heels at an angle Ship’s center of gravity Center of buoyancy (water displacement) Has moved right h h – leverage effect (påtryckning)Leverage effect (Moment): Leverage effect (Moment) http://members.aol.com/PhysicsDad/calcphys/lecture.html Torque is defined as the product of radius, force, and the sine of the angle between force and radius: t = r F (sin(X)) XThe ship heels at an angle: The ship heels at an angle h h – leverage effect (påtryckning) This Torque (Moment) will force the Ship to return back The ship is unstable: The ship is unstable h – leverage effect (påtryckning) Torque has change the direction The ship will capsizedThe ship is stable: The ship is stable h h If the center of gravity is very low – the ship will be stableWhy the ships heel?: Why the ships heel? h Because of wind! Or waves…Slide17: Wind S1 S2 A B Torque a a2 a1 aA aB Stability Curve Why did Vasa capsize?: Why did Vasa capsize? Engineering – Solve problems even when there is no formal theory Experience – best practices Observations Rules of thumb Processes to ensure the feasibility of problem solving COULD VASA BE SUCSSESFULLY BUILT IN SPITE OF LACK OF THEORY? WHAT DID PROJECT FAILED TO DO? Other reasons why Vasa capsized?: Other reasons why Vasa capsized? Resource & budget plan. The project was delayed and in its later phases, there was enormous pressure to finish work on time. Project management. The main builder (or in modern terms, the project manager) unfortunately sickened and died during the building of the ship, and the consequence was weak management and very poor coordination of the groups building different parts. Changes in requirements. The original requirement for one gun deck was changed to two gun decks when the building of the ship had already begun. Because the king was behind the decision, its possible consequences were not analyzed. Conflicting requirements and trade-off analysis. The Vasa was intended to be a new type of ship combining superior sailing characteristics and maneuverability with overwhelming striking force. Other reasons why Vasa capsized?: Other reasons why Vasa capsized? Design changes during the construction. The dimensions of the ship were changed several times during its construction with no proper analysis of the consequences. System design vs. detailed design. In many parts the design of the system was not clear and completed, and the final design was shaped during the implementation. The entire process is reminiscent of prototype building. In combination with poor project coordination this resulted in inadequate dimensions of some parts, such as insufficient space for ballast. Scalability. Vasa was designed as a smaller ship, and its dimensions were merely proportionally increased. Validation. The stability and other tests were primitive and not well performed. (Test: running across the deck)Vasa Disaster – Similar do Software Projects: Vasa Disaster – Similar do Software Projects Similar situation in software development project No formal/theoretical background for requirements and solution Feasibility of the requirements not analyzed Changes in requirements during the project work Time and Budget not properly planned No proper verification Bad quality assurance Shortage in knowledge in new disciplines ....Engineering vs. Software Engineering: Engineering vs. Software Engineering Many similarities Methods and procedures Base objectives and goals Many differences Difference between software and hardware/the real world Software – no physical limits Not visible Modifiable More complex Different theories and methods used Different experiences, traditions Different maturity levelAll aspects of Software Development: All aspects of Software Development Aspects Technical (how technicaly solve the problem) Organisational (how to organize people) Financial Marketing Professional and ethical responsibility Research and ScienceComputer Science Vs. Software Engineering: SOFTWARE ENGINEERING COMPUTER SCIENCE CUSTOMER Theories Principles, Methods and Tools to Solve Problem and Construct sSolutions Computer Functions Computer Science Vs. Software Engineering Solution Software Engineering Research & Science OTHER SCIENCES Computer Science Vs. Software Engineering: Computer Science Vs. Software Engineering COMPUTER SCIENCE Algorithms and data structures Programming languages Architecture Numerical and symbolic computation Operating systems Software methodology and engineering Databases and information retrieval Artificial intelligence and robotics Human-computer communication Social, ethical, and professional issues SOFTWARE ENGINEERING In many cases a defuse boundaries between SE and CSMethods and Technologies : Methods and Technologies Requirements Analysis Design Implementation Delivery Maintenance Test Software/Systems Engineering Methods Different Technologies Service Solution PhasesSE disciplines - examples: SE disciplines - examples Project management Development processes Requirements engineering Reverse engineering Test and Verification Software Maintenance Software Architecture Object-oriented modelling Software analysis Formal specification Software reliability Real-time Tools and environments Software Configuration Management Software engineering and the Internet Component-based SE Software Metrics Education Software Economics ......Software Engineering Methods - Examples: Software Engineering Methods - Examples Project Management Software Development Models and Processes support Analyse/design methods (UML, OOP, Formal methods, ...) Programming Methods /Languages Configuration Management Component-based Software Engineering (CBSE) Customer support, Maintenance Test and Verification Architectural analysis (tradeoff analysis, quality, attributes…) Requirements Engineering Requirements Analysis Design Implementation Delivery Maintenance Test ServiceWhat is then Software Engineering Research?: What is then Software Engineering Research? Analyzing natures of problems and their solutions Finding more general principles that SE can use Developing methods and tools Implementing principles on new problem domains …… Software Engineering Research: Software Engineering Research Different methods used SE Exemplified by Software Architecture Presentation extracted from Mary Show’s presentation on ICSE 2001 in Toronto http://www-2.cs.cmu.edu/~Compose/paper_abstracts/etaps-2002.html Slide31: REAL WORLD Practical problem REAL WORLD Practical Solution ?Research Model: Research Model Example: Software Architecture: Example: Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998 Software architecture – system decomposition: Software architecture – system decomposition System subsystem Subsystem component component componentNext step - Architectural Style: Recurring structures that occur in software systems AS = {Component types,Connector types,Constraints} Next step - Architectural Style Component and Connector Types Layered Abstract Machines Buss Shared Repository Component and Connector Types Pipe and FilterNext step: Aspects of Software Architecture: Next step: Aspects of Software Architecture Connector Role Port Attachment (sub)System Arch Component Representation Elements and Form Rationale Describes how the architecture satisfies system requirements for both functional and extra-functional properties.Next step: Formalization: Next step: Formalization Conceptual Architecture Example - UMLSE Research phases: SE Research phases Research Questions Summary: Summary Software Engineering is oriented on practical things from the real word Understanding problems, providing solutions SE uses methods and tools for solving the problems from different disciplines SE research Understanding principles Defining principle for solving the problems Developing tools and methods You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
se methods 2003 Irvette Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 275 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: November 07, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript Slide1: Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering ivica.crnkovic@mdh.se http://www.idt.mdh.se/~icc Contents: Contents What is Software Engineering? Software Engineering and Science Methods of Software Engineering Software Engineering Research Example – Software architectureWhat is Software Engineering?: What is Software Engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after gone into use. Ian Sommerville, Software Engineering We need further explanation of: Engineering discipline All aspects of software productionEngineering: Engineering Engineers make the things work Solving problems understand the problem analyze the problem Find solutions Constructing the solution from parts that address the problem's various aspects - do a synthesis To achieve the goal engineers apply theories, methods and tools from different disciplines Search for solutions even when there is not theory or methods Analysis of a problem: PROBLEM Subproblem 1 Subproblem 3 Subproblem 2 Analysis of a problem Identify different aspects of the problem Arrange the problems in clearly defined and understandable sub-problems The synthesis: Solution 1 Solution 3 Solution 2 Solution 4 The synthesis Find solutions for subproblems Put together solutions to a consistent view Provide (make) a solution Engineering Example – the Vasa Ship: Engineering Example – the Vasa Ship 1625 King Gustav II Adolf decided to start build Wasa 1628 - maiden voyage. Length- 69 metres Maximum width - 11.7 metres From keel to the top of the main mast - 52.5 metres Height of the stern - 19.3 metres Crew: 445 men, Seamen – 145, Soldiers - 300 Armament 64 guns Thousands of people involved in the project Selecting wood, building different parts Providing food, other services A master piece of work! Vasa – Example of Bad Engineering: Vasa – Example of Bad Engineering the ship capsized on her maiden voyage in the harbor of Stockholm. Why did the Vasa capsize? Why did the Vasa capsize? : Why did the Vasa capsize? The Vasa capsized because it was not stable; The Vasa capsized because the building process (or in terms of software engineering, the development project) was inadequate. How to calculate stability?: How to calculate stability? The forces are of equal size and in the opposite directionsThe ship heels at an angle: The ship heels at an angle Ship’s center of gravity Center of buoyancy (water displacement) Has moved right h h – leverage effect (påtryckning)Leverage effect (Moment): Leverage effect (Moment) http://members.aol.com/PhysicsDad/calcphys/lecture.html Torque is defined as the product of radius, force, and the sine of the angle between force and radius: t = r F (sin(X)) XThe ship heels at an angle: The ship heels at an angle h h – leverage effect (påtryckning) This Torque (Moment) will force the Ship to return back The ship is unstable: The ship is unstable h – leverage effect (påtryckning) Torque has change the direction The ship will capsizedThe ship is stable: The ship is stable h h If the center of gravity is very low – the ship will be stableWhy the ships heel?: Why the ships heel? h Because of wind! Or waves…Slide17: Wind S1 S2 A B Torque a a2 a1 aA aB Stability Curve Why did Vasa capsize?: Why did Vasa capsize? Engineering – Solve problems even when there is no formal theory Experience – best practices Observations Rules of thumb Processes to ensure the feasibility of problem solving COULD VASA BE SUCSSESFULLY BUILT IN SPITE OF LACK OF THEORY? WHAT DID PROJECT FAILED TO DO? Other reasons why Vasa capsized?: Other reasons why Vasa capsized? Resource & budget plan. The project was delayed and in its later phases, there was enormous pressure to finish work on time. Project management. The main builder (or in modern terms, the project manager) unfortunately sickened and died during the building of the ship, and the consequence was weak management and very poor coordination of the groups building different parts. Changes in requirements. The original requirement for one gun deck was changed to two gun decks when the building of the ship had already begun. Because the king was behind the decision, its possible consequences were not analyzed. Conflicting requirements and trade-off analysis. The Vasa was intended to be a new type of ship combining superior sailing characteristics and maneuverability with overwhelming striking force. Other reasons why Vasa capsized?: Other reasons why Vasa capsized? Design changes during the construction. The dimensions of the ship were changed several times during its construction with no proper analysis of the consequences. System design vs. detailed design. In many parts the design of the system was not clear and completed, and the final design was shaped during the implementation. The entire process is reminiscent of prototype building. In combination with poor project coordination this resulted in inadequate dimensions of some parts, such as insufficient space for ballast. Scalability. Vasa was designed as a smaller ship, and its dimensions were merely proportionally increased. Validation. The stability and other tests were primitive and not well performed. (Test: running across the deck)Vasa Disaster – Similar do Software Projects: Vasa Disaster – Similar do Software Projects Similar situation in software development project No formal/theoretical background for requirements and solution Feasibility of the requirements not analyzed Changes in requirements during the project work Time and Budget not properly planned No proper verification Bad quality assurance Shortage in knowledge in new disciplines ....Engineering vs. Software Engineering: Engineering vs. Software Engineering Many similarities Methods and procedures Base objectives and goals Many differences Difference between software and hardware/the real world Software – no physical limits Not visible Modifiable More complex Different theories and methods used Different experiences, traditions Different maturity levelAll aspects of Software Development: All aspects of Software Development Aspects Technical (how technicaly solve the problem) Organisational (how to organize people) Financial Marketing Professional and ethical responsibility Research and ScienceComputer Science Vs. Software Engineering: SOFTWARE ENGINEERING COMPUTER SCIENCE CUSTOMER Theories Principles, Methods and Tools to Solve Problem and Construct sSolutions Computer Functions Computer Science Vs. Software Engineering Solution Software Engineering Research & Science OTHER SCIENCES Computer Science Vs. Software Engineering: Computer Science Vs. Software Engineering COMPUTER SCIENCE Algorithms and data structures Programming languages Architecture Numerical and symbolic computation Operating systems Software methodology and engineering Databases and information retrieval Artificial intelligence and robotics Human-computer communication Social, ethical, and professional issues SOFTWARE ENGINEERING In many cases a defuse boundaries between SE and CSMethods and Technologies : Methods and Technologies Requirements Analysis Design Implementation Delivery Maintenance Test Software/Systems Engineering Methods Different Technologies Service Solution PhasesSE disciplines - examples: SE disciplines - examples Project management Development processes Requirements engineering Reverse engineering Test and Verification Software Maintenance Software Architecture Object-oriented modelling Software analysis Formal specification Software reliability Real-time Tools and environments Software Configuration Management Software engineering and the Internet Component-based SE Software Metrics Education Software Economics ......Software Engineering Methods - Examples: Software Engineering Methods - Examples Project Management Software Development Models and Processes support Analyse/design methods (UML, OOP, Formal methods, ...) Programming Methods /Languages Configuration Management Component-based Software Engineering (CBSE) Customer support, Maintenance Test and Verification Architectural analysis (tradeoff analysis, quality, attributes…) Requirements Engineering Requirements Analysis Design Implementation Delivery Maintenance Test ServiceWhat is then Software Engineering Research?: What is then Software Engineering Research? Analyzing natures of problems and their solutions Finding more general principles that SE can use Developing methods and tools Implementing principles on new problem domains …… Software Engineering Research: Software Engineering Research Different methods used SE Exemplified by Software Architecture Presentation extracted from Mary Show’s presentation on ICSE 2001 in Toronto http://www-2.cs.cmu.edu/~Compose/paper_abstracts/etaps-2002.html Slide31: REAL WORLD Practical problem REAL WORLD Practical Solution ?Research Model: Research Model Example: Software Architecture: Example: Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998 Software architecture – system decomposition: Software architecture – system decomposition System subsystem Subsystem component component componentNext step - Architectural Style: Recurring structures that occur in software systems AS = {Component types,Connector types,Constraints} Next step - Architectural Style Component and Connector Types Layered Abstract Machines Buss Shared Repository Component and Connector Types Pipe and FilterNext step: Aspects of Software Architecture: Next step: Aspects of Software Architecture Connector Role Port Attachment (sub)System Arch Component Representation Elements and Form Rationale Describes how the architecture satisfies system requirements for both functional and extra-functional properties.Next step: Formalization: Next step: Formalization Conceptual Architecture Example - UMLSE Research phases: SE Research phases Research Questions Summary: Summary Software Engineering is oriented on practical things from the real word Understanding problems, providing solutions SE uses methods and tools for solving the problems from different disciplines SE research Understanding principles Defining principle for solving the problems Developing tools and methods