introduction to designing and developing software

Post on 11-Jun-2015

285 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

A brief introduction to designing and developing software

TRANSCRIPT

Learning Computer Programming

Introduction to Designing and Developing Software

Presenter: Mani Sarkar (sadhak001@gmail.com)

Designing Software

When we hear the word ‘design’, what is the first thing that comes into our mind?

Something visual?

Designing Software

Real world analogy: an architect’s blue-print & model

Designing Software- What do we mean by designing software?

- defining a sequence of steps or actions- a flow of actions, to achieve a goal- problem solving and planning phase*- its a post-requirement gathering phase*

- its a pre-coding phase*- keeping the end-goal in mind all the time

* depends on the methodology practised

Designing Software- Important Considerations of Software design

- Security- Modularity & Cohesion- User friendliness- Reusability & Scalability

- Reliability - Performance- Maintainability, among others

Designing Software- Design approaches

- Upfront design- Emerging design- Design assisted by design patterns- Discovery method [ad-hoc]

Designing Software (contd.)In reality: modeling & architecting flow of the actions

Thinking and expressing real world actions into design & flow

Developing Software

- heart of the software development process- requires experience & discipline- peer review and feedback- best practices

Developing Software (contd.)

- well-crafted code- methodology chosen defines the future (factor)- language & platform chosen defines the future (factor)

Developing Software (contds)- Various approaches

- ad-hoc (error prone)- guided by specification & design

(followed by tests)- guided by tests (test-first, test-

driven)- outside in- inside out

Finally...Tests capture behaviour and are specifications of your requirements, and depends on:

- test coverage- quality of the tests

Wrap Up

Questions?

top related