Software architecture First Lecture


Published on

By: Sir Salman Qadri

Published in: Education, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Architecture and Agility June 2008 Philippe Kruchten
  • Software architecture First Lecture

    1. 1. Software Architecture BY Syed Salman Qadri
    2. 2. Introduction
    3. 3. Software Engineering <ul><li>What is Software? </li></ul><ul><li>Software is not just a program; many things other than the program are also included in software . </li></ul><ul><li>Program: The program or code itself is definitely included in the software. </li></ul><ul><li>Data: The data on which the program operates is also considered as part of the </li></ul><ul><li>software. </li></ul><ul><li>Documentation: Another very important thing that most of us forget is </li></ul><ul><li>documentation . All the documents related to the software are also considered as part </li></ul><ul><li>of the software. </li></ul>
    4. 4. Engineering <ul><li>“ The process of productive use of scientific knowledge is called engineering.” </li></ul>
    5. 5. Difference between Computer Science and Software Engineering <ul><li>The science concerned with putting scientific knowledge to practical use. </li></ul><ul><li>Webster’s Dictionary </li></ul><ul><li>This is the process of utilizing knowledge of computer science in effective production of software systems.” </li></ul>
    6. 6. Software Engineering as defined by IEEE: <ul><li>“ The application of a systematic, disciplined, quantifiable approach to the development,operation, and maintenance of software; that is, the application of engineering to software.” </li></ul>
    7. 7. Software Engineering By Ian Sommerville <ul><li>All aspects of software production’ Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production”. </li></ul>
    8. 8. Well-Engineered Software <ul><li>It is reliable </li></ul><ul><li>It has good user-interface </li></ul><ul><li>It has acceptable performance </li></ul><ul><li>It is of good quality </li></ul><ul><li>It is cost-effective </li></ul>
    9. 9. Law of Diminishing Returns <ul><li>benefit </li></ul>
    10. 10. Software Background <ul><li>Caper Jones Famous practitioner and researcher in the filed of Software Engineering </li></ul><ul><ul><li>Fred is also a renowned software engineer, he wrote a great book related to software engineering named “ A Mythical Man Month ” </li></ul></ul>
    11. 11. Importance for Software Engineering <ul><li>Project Management </li></ul><ul><li>Requirement Engineering </li></ul><ul><li>Design </li></ul><ul><li>Coding </li></ul><ul><li>Testing </li></ul><ul><li>Software Quality Assurance </li></ul><ul><li>Software Configuration Management </li></ul><ul><li>Software Integration and </li></ul><ul><li>Rest of the activitiesFred Brooks </li></ul>
    12. 12. The Balancing Act! <ul><li>Potentially conflicting requirements </li></ul><ul><ul><li>Cost vs. Efficiency </li></ul></ul><ul><ul><li>Cost vs. Reliability </li></ul></ul><ul><ul><li>Efficiency vs. User-interface </li></ul></ul><ul><li>Challenge is to balance these requirements. </li></ul>
    13. 13. Software Architecture Software design Code etc. Software Architecture Requirements
    14. 14. Software architecture <ul><li>Software architecture is what software architects do </li></ul><ul><li>Software architecture (Formal Definition) </li></ul><ul><li>Software architecture is the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution </li></ul>
    15. 15. Architecture defined <ul><ul><li>A software system architecture comprises A collection of software and system components, connections, and constraints </li></ul></ul><ul><ul><ul><li>A collection of system stakeholders' need statements </li></ul></ul></ul><ul><ul><ul><li>A rationale which demonstrates that the components, connections, and constraints define a system that, if implemented, would satisfy the collection of system stakeholders' need statements(Boehm </li></ul></ul></ul><ul><li>A set of architectural (or design) elements that have a particular form(Perry & Wolf) </li></ul>
    16. 16. Requirements <ul><li>Something required, something wanted or needed </li></ul><ul><ul><li>Webster’s dictionary </li></ul></ul><ul><li>There is a huge difference between wanted and needed and it should be kept in mind all the time </li></ul>
    17. 17. Thanks <ul><li>Any Question??? </li></ul>
    18. 18. References <ul><li>‘ Requirements Engineering: Processes and Techniques’ by G. Kotonya and I. Sommerville, John Wiley & Sons, 1998 </li></ul><ul><li>Software Requirements: Objects, Functions, and States by A. Davis, PH, 1993 </li></ul><ul><li>Software Engineering 6 th Edition, by I. Sommerville, 2000 </li></ul><ul><li>Software Engineering 5 th Edition, by R. Pressman </li></ul>