0% found this document useful (0 votes)
37 views6 pages

Different Techniques of Software Design: TEAM NO.:-17. Team Members

The document discusses 5 team members on Team No. 17: Umesh Kumar, Aryan Jain, Avdhesh Sharma, Bhati Pratik Satish, and Rahul Katara. It then discusses different software design techniques including exploratory programming, structured programming, data-flow oriented design, function-oriented design, and object-oriented design. It compares exploratory design to modern principles of error prevention, distinct design phases, and improved maintainability.

Uploaded by

Umesh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views6 pages

Different Techniques of Software Design: TEAM NO.:-17. Team Members

The document discusses 5 team members on Team No. 17: Umesh Kumar, Aryan Jain, Avdhesh Sharma, Bhati Pratik Satish, and Rahul Katara. It then discusses different software design techniques including exploratory programming, structured programming, data-flow oriented design, function-oriented design, and object-oriented design. It compares exploratory design to modern principles of error prevention, distinct design phases, and improved maintainability.

Uploaded by

Umesh Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

TEAM NO. :-17.

TEAM MEMBERS
 Umesh Kumar(19114086).
 Aryan Jain (19114012).
 Avdhesh Sharma(19114015).
 Bhati Pratik Satish(19114021).
 Rahul Katara(19114070).

Answer 1

Different techniques of Software design


1. Exploratory Programming: Before the development of any high-level
programming language, most of the programs were written in the assembly
language and were limited to a few hundred lines of code. During such times,
the technique of exploratory programming was used. In this technique,
programmer writes the code in his way which he finds comfortable. So, each
programmer has his individual way of designing the code. The code is based on
the individual’s personal intuition and hence difficult to understand by others.
2. Structured Programming Methodology: As the high-level languages were
developed, the size and the complexity of the programs kept on increasing. As
a result, it became difficult to maintain and understand programs written by
traditional technique. It was found out the GOTO statements were the main
culprit in making the control-flow structure of the program messy. It was
proved that any programming logic can be expressed by three programming
constructs – sequence, selection and iteration. This formed the basis of
Structured Programming Methodology. The solution modules are used to solve
the small pieces of the problem. These modules are arranged in hierarchy and
communicate with each other.
Cohesion: refers to grouping of functionally related elements. It talks about
how much functionality is related to each other with the module.
Coupling: refers to how much communication takes place between different
modules.
A good software design will have high cohesion and low coupling.
3. Data-flow oriented design: This method of designing focuses on how the
operations on the data take place to generate the expected output. The
programmers focus on the flow of data from the input to the output. The
design is done on the basis of processes the data goes through to give the
desired functionality. One can derive the program structure, once the data
flow is identified.
4. Function-oriented design: The system is comprised of may sub-systems
known as functions. These functions are capable of performing significant tasks
in the systems. Function-oriented design is similar to structured programming
but with the divide and conquer methodology. The software design is
decomposed into set of interacting units, with each unit having a clearly
defined function.
5. Object-Oriented design: In object-oriented design approach, the naturally
occurring objects are first identified and the design is done on the basis of
relationship amongst these objects. These relationships may include
composition, inheritance and reference. Each object in such design acts as data
hiding entity. Object-oriented design uses objects, and not algorithms as its
fundamental logic building blocks. Each object is an instance of some class.
These classes may be related to each other by inheritance relationships. There
are two important parts of Object-Oriented design approach:
(1) it leads to an object-oriented decomposition
(2) uses different notation to express of logical and physical design of a system.
Object-Oriented design is latest and most widely used technique for software
design.
Exploratory v/s Modern Software development:
The Exploratory Software development style is mainly based on error-
correction, whereas modern software development principles are based on
error-prevention. Coding is considered almost synonymous to software
development in the Exploratory style. Whereas the modern software
development method is categorized into several stages such as specification
requirement, design, coding, testing etc. Modern Software development has
distinct design phase where the standard design techniques are applied. There
is better visibility of design and code and the project is thoroughly planned.
Also, the programs are easier to maintain and understand by others.
Reusability, productivity, cost-effective and easy maintenance are some more
advantages of following modern software development principles.

Answer(2)
 In unified process, also known as the iterative software development,
the system is developed incrementally over time by iteration process
making the system more enlarged and refined.
 This iterative software development process is divided into four distinct
phases:
Inception:
 The idea of the project is in concern, and the development team
determines if the project is worth pursuing, what are the scope of
project, identifying risks and the resources that the team will need in
accomplishing the project.
Elaboration:
 More evaluations are made and the team determines the possible
applications of the project and the costs associated with the project.
Constuction:
 The software is designed, written and tested , here the project is
developed and completed.
Transition:
 The software is released and ready for the general use and further
adjustments and updates are made based on consumers inputs and
feedback of the software.

Each phase consists of set of predefined activities:-


 Business Modeling : Dynamic modeling of the business processes.
 Requirements: Include activities like writing use cases, and also
indentifies nonfunctional requirements.
 Analysis and design: Includes the design aspects in overall architecture.
 Implementation: Programming and building the system.
 Test: Test planning, development of test scenarios, alpha and beta
testing etc.
 Deployment: The deployment activities of the deployed system.

Answer 3.

 Topics covered in an accounting framework:

 Presentation of financial statements

 Revenue recognition

 Employee benefits

 Borrowing costs

 Income tax accounting

 Investment in associates

 Fixed assets

 Retirement benefit plans

 Foreign exchange rates

 Operating segments

 Industry-specific accounting, such as mineral resources and


agriculture

 Unified Process for building an accounting framework for a small-scale


organization:

 Why to use Unified process?


 It is a complete methodology with an emphasis on accurate
documentation so it will be very useful as accounting framework is
a well-defined pre-documented model.
 The development time required is less due to reuse of
components.
 Less time is required for integration as the process of integration
goes on throughout the software development life cycle.
 It is proactively able to resolve the project risks which is necessary
requirement of an accounting framework.
 Use of Unified modelling language (UML) facilitates the analysis
and design of various components

 Problems in using Unified Process:


 The team members need to be expert in their field to develop a
software under this methodology so hiring expert team member
may be not feasible for a small-scale organization financially.
 The development process is too complex and disorganized so it
may be difficult to understand by other team members who didn’t
write that code.
 Integration throughout the process of software development, in
theory sounds a good thing. But for this project where it must
include so many different topics, it will only add to the confusion
and cause more issues during the stages of testing.

 Conclusion:
Unified Process is quite good for this project as compared to other
methodologies as it emphasises on proper documentation, takes relatively
less time for development, risk is also low in it and it facilitates analysis and
design using UML. But it has some problems like financial, complexity etc.

Answer 4
We would use agile unified process to build such a framework because
1. We are making this framework for an organization that is operating at
large Scale. So I require a developing mechanism that is iterative in
nature because as the size of problem is very big so it has more
complexity involved so we can’t cover all the aspects of the problem in a
single shot because as we move ahead in the problem domain new
requirement can arise like if there is some change in business exchange
policy with foreign trade then the system needs to be updated hence
deploying an iterative development process will help us to overcome
such problems.
2. The agile unified process methodology will reduce the time for
production of a stable intermediate form because in the process there is
a constant feedback provided by the client and also due to its iterative
nature we can evolve a simple system into complex system by adding
feature at each iteration.
3. It gives a larger window for reusability of code because in each iteration
we focus on some smaller aspect of the problem and due to this
decomposition of larger system into smaller system give a modular and
layered design to the software and hence we can use modules from
previous implementations
4. In AUP there is constant interaction between teams that are working on
different features of the software so each team is aware of the other
which reduces the complexity (confusion) during the time of testing.
In AUP the primary focus is to resolve the risk related to the problem during
the initial stages of life cycle model which greatly reduces the chance of failure
of development process because if we encounter such a problem towards the
end of the lifecycle then we need to do changes in a large portion of the
software which will ultimately increase the cost and there would be wastage of
human resource which in turn increases the cost.

You might also like