Wednesday, October 7, 2015

Chapter 6 - Intro to Software/Systems Development



  1. Introduction:

    database is structured collection of data. Thus, card indices, printed catalogues of archaeological artefacts and telephone directories are all examples of databases. Databases may be stored on a computer and examined using a program. These programs are often called `databases', but more strictly are database management systems (DMS). Just as a card index or catalogue has to be constructed carefully in order to be useful, so must a database on a computer. Similarly, just as there are many ways that a printed catalogue can be organised, there are many ways, or models, by which a computerised database may be organised. One of the most common and powerful models is the `relational' model (discussed below), and programs which use this model are known as relational database management systems (RDMS).
    Computer-based databases are usually organised into one or more tables. A table stores data in a format similar to a published table and consists of a series of rows and columns. To carry the analogy further, just as a published table will have a title at the top of each column, so each column in a database table will have a name, often called a field name. The term field is often used instead of column. Each row in a table will represent one example of the type of object about which data has been collected. Table 1(a) (p. [*]) is a an example of a table from a database of English towns. Each row, in this case a town, is an entity, and each column represents an attribute of that entity. Thus, in this table `population' is an attribute of `town.'
    Basic Concepts on Systems Analysis and Designs

  1. 1. IntroducingSystems Analysis, Design & Development Concepts Shafiul Azam Chowdhury
  2. 2. Task: Build a Simplest Accounting S/W• You’ve been offered to build a very basic accounting software for Bangoo Banks Inc. – You’ll need to collaborate with 3-4 other developers. – You’ll receive handsome amount of cash for full functional software! – Deadline: very, very strict. Say, couple of months?
  3. 3. What are you going to do?• Divide the total project in visible sections, say: – User Accounts – Human Resource – Accounting – Etc…• And started asking questions to your clients how they want the program behave, design database…
  4. 4. All four developers started coding asfast as you can to maintain deadline.
  5. 5. After some days… you felt like integrating your works?• But you figured out you need a change in some part, you could change it, but others’ code can break?• You hardly understand what your friend means by variable baln or function register()• Your disc crashed and your codes are gone?• You’ve created too many folders like code_old code_working, code_new2, code_final… now what?• How do you merge everybody’s code to a full- functional system?
  6. 6. Messed Up?• Without putting your code in a function, you just wrote it down, thinking, “Hey, I’ll not use this code anywhere else! So Why do I need to put it in a function or class?”• But, you never know… – Client may change his mind – New functionalities may appear in future – And you’re very likely to duplicate same codes. – Man is mortal. To fix buggy codes you’ll need to investigate your whole project number of times you copy-pasted same code. • Hard to find bugs. 
  7. 7. Software Evolves…• If your software is usable, it will have changes in it and have future releases.• Clients will add new features, or users will want changes.
  8. 8. After some days, you’re about to bring some changes in your code.
  9. 9. And… Is that Hebrew? You don’t understand your own code 
  10. 10. If you don’t practice standards, it’ll be very, very difficult to maintain the project later.So What arebest practices?
  11. 11. Software Development Life Cycle
  12. 12. Introducing SADD• Systems… – Step 1: Analysis – Step 2: Design – Step 3: Development• Step 4: Evolve! Back to step 1
  13. 13. First Step: Systems Analysis• Known as Requirement Analysis• Extract information from your clients on what the software is supposed to do.• Place them on SRS Cards• Useful to understand the total scope of application, defining priority and leads to modular design.
  14. 14. Sample Requirement Analysis for some Alumni Website…
  15. 15. SRS (Software Requirement Specification) Cards for Requirement Analysis
  16. 16. Step 2: Design your system• Once you’re done with analysis, design it.• The great majority of the types of errors found in testing the code had originated in the design phase – See figure in next slide.
  17. 17. Systems Design• Following Design Patterns – Why reinvent the wheel?• Modular Design – Loosely coupled code – Easy to extend your program – Code less. Reuse your code• Build Wireframes• Follow Single Responsibility Principle
  18. 18. Building Wireframe• Create Mock-up/prototype of your application before starting coding. – Can be built using GUI tools very rapidly – Client can know how your application will look like/interact with users. – Non functional.
  19. 19. Wireframe Tools
  20. 20. Single Responsibility Principle
  21. 21. Development: Teamwork
  22. 22. Code Green. Test Units.
  23. 23. Documentation• You alone are not coding – Others will work with your code – You will work with other’s code.• Provide Documentation
  24. 24. Take help of Development Tools• You figured out you need a change in some part, you could change it, but others’ code can break?• You hardly understand what your friend means by variable baln or function register()• Your disc crashed and your codes are gone?• You’ve created too many folders like code_old code_working, code_new2, code_final… now what?• How do you merge everybody’s code to a full-functional system?
  25. 25. Understanding Your Responsibility You need to work with a lot of people!
  26. 26. Project Management Tools• Coding is not your only responsibility. – Issues are assigned to you by your Project Manager – Bug fixing tasks assigned to you – You fix code and re-assign it to Tester.• To simplify all these, various Tools are available. – Using these tools guarantee standards.
  27. 27. Tools: Revision Controlling• Git is a powerful distributed version controlling system. – Stores complete history of your source code at different stages of project life cycle. – Easy merging of everyone’s copy of work. – Distributed.
  28. 28. Project Management Tools• Project Management applications come with rich features like – Role Management (PM, Tester, Designer, Programmer,…) – Bugs Reporting – Issue Tracking & Assigning – Gaunt Charts for schedule management – Documentation
  29. 29. Tools: Gaunt Chart

Project Management - Basic Concepts

  1. 1. Project Management
  2. 2. Project Management What is Project?  A project is a temporary endeavor undertaken to create unique product, service or result. What is Project Management?  Project management is the application of knowledge, skills, tools and techniques to project activities to meet the project requirements.
  3. 3. Balance the Trade-off Triple Constraints
  4. 4. Project Organization  Functional  Matrix  Projectized Weak Balance Strong
  5. 5. Project Organization
  6. 6. Project Cost & Staffing Level
  7. 7. Impact of variables
  8. 8. Project Phase
  9. 9. Project Cycle
  10. 10. Project Cycle
  11. 11. Project Management KA
  12. 12. Project Management KA
  13. 13. Project Management KA
  14. 14. Initiation
  15. 15. Charter
  16. 16. Stakeholders WHO? Is paying for it Is making profit of it Is using it Is with/against it Influences it Will be promoted Will be punished
  17. 17. Stakeholders InterestInterest InfluenceInfluence
  18. 18. Planning stage “Man does not plan to fail, he just fails to plan.” Anonymous
  19. 19. Planning stage
  20. 20. Work Breakdown Structure Work Breakdown Structure (WBS)  Hierarchical decomposition of the total scope of project Work Package  Lowest level of WBS for each cost and duration can be estimated Project Plan Resources Schedule Work Breakdown Structure
  21. 21. WBS(sample)
  22. 22. Execution
  23. 23. Monitoring & Controlling
  24. 24. Risk Management

No comments:

Post a Comment