IntroducingSystems Analysis, Design &Development ConceptsShafiul Azam Chowdhury
Task: Build a Simplest Accounting S/W• You’ve been offered to build a very basicaccounting software for Bangoo Banks Inc.–...
What are you going to do?• Divide the total project in visible sections, say:– User Accounts– Human Resource– Accounting– ...
All four developers started coding asfast as you can to maintain deadline.
After some days… you felt likeintegrating your works?• But you figured out you need a change in somepart, you could change...
Messed Up?• Without putting your code in a function, you just wroteit down, thinking, “Hey, I’ll not use this code anywher...
Software Evolves…• If your software is usable, it will have changesin it and have future releases.• Clients will add new f...
After some days, you’re about to bringsome changes in your code.
And…Is thatHebrew?You don’tunderstand yourown code 
If you don’t practice standards, it’ll be very,very difficult to maintain the project later.So What arebest practices?
Software Development Life Cycle
Introducing SADD• Systems…– Step 1: Analysis– Step 2: Design– Step 3: Development• Step 4: Evolve! Back to step 1
First Step: Systems Analysis• Known as Requirement Analysis• Extract information from your clients on whatthe software is ...
Sample Requirement Analysisfor some Alumni Website…
SRS (Software Requirement Specification)Cards for Requirement Analysis
Step 2: Design your system• Once you’re done with analysis, design it.• The great majority of the types of errors foundin ...
Systems Design• Following Design Patterns– Why reinvent the wheel?• Modular Design– Loosely coupled code– Easy to extend y...
Building Wireframe• Create Mock-up/prototype of your applicationbefore starting coding.– Can be built using GUI tools very...
Wireframe Tools
Single Responsibility Principle
Development: Teamwork
Code Green. Test Units.
Documentation• You alone are not coding– Others will work with your code– You will work with other’s code.• Provide Docume...
Take help of Development Tools• You figured out you need a change in somepart, you could change it, but others’ codecan br...
Understanding Your ResponsibilityYou need towork with alot of people!
Project Management Tools• Coding is not your only responsibility.– Issues are assigned to you by your ProjectManager– Bug ...
Tools: Revision Controlling• Git is a powerful distributed versioncontrolling system.– Stores complete history of your sou...
Project Management Tools• Project Management applications come withrich features like– Role Management (PM, Tester, Design...
Tools: Gaunt Chart
Thank You!• Presentation prepared by– Shafiul Azam Chowdhury– Student, CSE, BUET– http://shafiul.users.sf.net
References• http://mixergy.com/wp-content/uploads/fast-typing.jpg• http://www.confessionsofaphotoshopnerd.com/storage/Conf...
Introducing Systems Analysis Design Development
Upcoming SlideShare
Loading in …5
×

Introducing Systems Analysis Design Development

434 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
434
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introducing Systems Analysis Design Development

  1. 1. IntroducingSystems Analysis, Design &Development ConceptsShafiul Azam Chowdhury
  2. 2. Task: Build a Simplest Accounting S/W• You’ve been offered to build a very basicaccounting software for Bangoo Banks Inc.– You’ll need to collaborate with 3-4 otherdevelopers.– You’ll receive handsome amount of cash for fullfunctional 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 clientshow they want the program behave, designdatabase…
  4. 4. All four developers started coding asfast as you can to maintain deadline.
  5. 5. After some days… you felt likeintegrating your works?• But you figured out you need a change in somepart, you could change it, but others’ code canbreak?• You hardly understand what your friend means byvariable baln or function register()• Your disc crashed and your codes are gone?• You’ve created too many folders like code_oldcode_working, code_new2, code_final… nowwhat?• 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 wroteit down, thinking, “Hey, I’ll not use this code anywhereelse! 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 investigateyour whole project number of times you copy-pasted samecode.• Hard to find bugs. 
  7. 7. Software Evolves…• If your software is usable, it will have changesin it and have future releases.• Clients will add new features, or users willwant changes.
  8. 8. After some days, you’re about to bringsome changes in your code.
  9. 9. And…Is thatHebrew?You don’tunderstand yourown 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 whatthe software is supposed to do.• Place them on SRS Cards• Useful to understand the total scope ofapplication, defining priority and leads tomodular design.
  14. 14. Sample Requirement Analysisfor 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 foundin testing the code had originated in thedesign 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 applicationbefore starting coding.– Can be built using GUI tools very rapidly– Client can know how your application will looklike/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 somepart, you could change it, but others’ codecan break?• You hardly understand what your friendmeans by variable baln or functionregister()• Your disc crashed and your codes are gone?• You’ve created too many folders likecode_old code_working, code_new2,code_final… now what?• How do you merge everybody’s code to afull-functional system?
  25. 25. Understanding Your ResponsibilityYou need towork with alot of people!
  26. 26. Project Management Tools• Coding is not your only responsibility.– Issues are assigned to you by your ProjectManager– Bug fixing tasks assigned to you– You fix code and re-assign it to Tester.• To simplify all these, various Tools areavailable.– Using these tools guarantee standards.
  27. 27. Tools: Revision Controlling• Git is a powerful distributed versioncontrolling system.– Stores complete history of your source code atdifferent stages of project life cycle.– Easy merging of everyone’s copy of work.– Distributed.
  28. 28. Project Management Tools• Project Management applications come withrich features like– Role Management (PM, Tester, Designer,Programmer,…)– Bugs Reporting– Issue Tracking & Assigning– Gaunt Charts for schedule management– Documentation
  29. 29. Tools: Gaunt Chart
  30. 30. Thank You!• Presentation prepared by– Shafiul Azam Chowdhury– Student, CSE, BUET– http://shafiul.users.sf.net
  31. 31. References• http://mixergy.com/wp-content/uploads/fast-typing.jpg• http://www.confessionsofaphotoshopnerd.com/storage/Confessions%20of%20a%20photoshop%20nerd.jpg?__SQUARESPACE_CACHEVERSION=1294205000507• http://www.fgsd.com.au/wp-content/uploads/2011/09/Software-Policies-Processes.jpg• http://en.wikipedia.org/wiki/Systems_development_life-cycle• http://sunset.usc.edu/csse/TECHRPTS/1975/usccse75-501/usccse75-501.pdf• http://farm6.static.flickr.com/5227/5643033953_9b542af5a1.jpg• www.jsu.edu/mcis/docs/SRSSample.doc• http://cdn.seomoz.org/images/upload/axure-wireframe.gif• http://www.re-vision.com/webwork/p27wireframes/drawing_small.jpg• http://elegantcode.com/2008/12/22/single-responsibility-principle/• http://www.emqube.com/images/side_team.jpg• http://www.bluecollarobjects.com/pub/Main/TestDrivenDevelopment/RedGrenRefactorTight.jpg• http://www.agilemodeling.com/images/generalizingSpecialistsTaylorism.jpg• http://home.snc.edu/eliotelfner/333/pictures/Gantt.gif

×