AppDev-Reviewer
AppDev-Reviewer
1. Traditional coding
• It is the app development approach and requires developers to code the app
from scratch. This requires the developers to have app development
knowledge and coding experience.
2. Low Coding
• Low coding is the latest app development approach that uses special tools
and platforms to create apps quickly without requiring manual coding .
• Best approach for app projects with complex requirements as it allows app
developers to gauge the app’s performance and make necessary changes.
App development is linked with the software development life cycle. The basic
stages and steps of app development SDLC are as follows:
• The SDLC is important because it helps ensure that the right people are involved in
the right activities at the right times. Using a structured approach to developing
software helps ensure that your project will be successful. Some of the SDLC's
benefits are:
- Understanding your requirements and the goal of the software
- Identify risks at an early stage
- Plan how you will deliver your solution in stages, such as building prototypes
or writing functional specifications
- Measure your progress relative to your goals and ensure everything is on
track.
7 stages of the software development life cycle
• The first step in the software development life cycle is planning. It's when you gather
the team to brainstorm, set goals, and identify risks. At this stage, the team will work
together to devise a set of business goals, requirements, specifications, and any
high-level risks that might hinder the project's success.
• Once you've come up with some ideas, it's time to organize them into a cohesive
plan and design. This requires a lot of research and planning to ensure that your
final product meets your expectations (and those of your customers). The big step
is creating a detailed project plan document and work breakdown structure that
outlines the requirements.
• Once you've got your design plans in front of you, it's time for wireframing and
mockups. This step builds upon the planning stage, building out the tasks you need
to do in the work breakdown schedule. There are plenty of tools available, such as
Adobe XD or InVision, that make this process much easier than ever before.
• The development phase is where coding begins to take place. It is one of the most
time-consuming phases in the SDLC. This phase often requires extensive
programming skills and knowledge of databases. The team will build functionality
for the product or service, which includes creating a user interface and building the
database so users can store information in your system.
• Before releasing the mockups into final production, you'll need to test it to ensure it
is free of bugs and errors. Any issues need to be fixed before moving forward with
deployment. You'll also need to manage how the system will integrate into existing
systems, software, and processes.
Stage 6: Implement and launch the product.
• Once you've completed all testing phases, it's time to deploy your new application
for customers to use. After deployment, the launch may involve marketing your new
product or service so people know about its existence. If the software is in-house, it
may mean implementing the change management process to ensure user training
and acceptance.
• The final stage of the software development life cycle is maintenance and
operations. This is one of the most critical stages because it's when your hard work
gets put to the test.
• Maintenance involves updating an existing software product to fix bugs and ensure
reliability. It can also include adding new features or functionality to a current
product. Operations refer to the day-today running of a software product or service,
such as performing backups and other administrative tasks.
• There are six main software development approach models available in the market.
Each has its own advantages and disadvantages. They are listed below:
Waterfall model
• The waterfall model remains one of the most popular process models in software
development. Used since the 1970s, the waterfall model is a sequential design
process that moves in a straight line from one phase to the next. Developers use
this approach when the requirements for a product are well-defined and resources
are available. However, it can perform inconsistently if requirements change
frequently.
Agile model
• The Agile software development process aims to deliver high-quality software early,
often, and at a low cost. Agile methods prioritize working software over
comprehensive pre-planning and documentation, which can slow the creative
process. It is a modern approach with short phases that works well when software
requirements are likely to emerge as the development process begins. The Agile
model offers more flexibility than the Waterfall model, but it is not always suitable
for large-scale projects with complex requirements because it lacks initial
documentation.
Iterative model
• The iterative model organizes the development process into small cycles instead of
a strictly linear progression. This allows developers to make changes incrementally
and frequently so they learn from mistakes before they become expensive.
Developers get feedback from users throughout the process with the iterative
model, so it's ideal for large projects with a strong leadership team.
V-shaped model
• Also called the Verification and Validation model, the V-Shaped model allows for
simultaneous development and testing. Like Waterfall, this model follows a linear
progression, but you only move on to the next stage once the team finishes the
previous one. The V-shaped model focuses on documentation and planning so it's
ideal for large-scale projects with long schedules. However, the rigidity built into the
system only allows for infrequent changes.
Big Bang model
• Compared to other software development models, Big Bang has less structure. With
this model, developers start working with little more than an understanding of the
project requirements. They must figure out things as they go along, as they put
most of the resources into the software development stage. Big Bang focuses on
getting something working quickly. This approach works well with small projects,
where one or two developers can work together to determine requirements and
solutions as they code. However, it can be expensive and time-consuming for large
projects.
Spiral model
• The spiral model combines elements of other models, namely Waterfall and
Iterative. Developers work in shorter cycles, and the work within the cycles follows a
linear progression. After each iteration, the software gradually gets better. The key
advantage of this model is that it helps manage risk very effectively by focusing on
small portions of risk at a time and using different approaches based on the risk
profile at that stage. This allows developers to make adjustments without
compromising the project's outcome. This approach works well in highly complex,
large, expensive projects.
Programming Paradigms and Languages
Procedural Paradigm
• To limit the program flow in 1-dimensional (or linear way). Most of software
developers would have been brain-washed to think this way.
• The most serious limitation is the tendency for large procedural-based programs to
turn into "spaghetti-code".
• Spaghetti code is code that has been modified so many times that the logical flow
becomes so complicated. Accordingly, any new programmer coming onto the
project needs a two-month prep-course in order to even begin to understand the
software innards.
Event Driven Paradigm
• The flow of the program is determined by events, such as or user actions (mouse
clicks, key presses) or messages from other programs.
• Is widely used in graphical user interfaces
• Is clearly divided down to two sections:
- the first is event selection (or event detection)
- the second is event handling.
• Limitations Sometimes leading programmers to create error prone, difficult to
extend and excessively complex application code.
Limitations of OOP
• Not all programs can be modeled accurately by the objects model. If you just want
to read in some data, do something simple to it and write it back out, you have no
need to define classes and objects.
• Another disadvantage is that one programmer's concept of what constitutes an
abstract object might not match the vision of another programmer. The objects
often require extensive documentation.
Programming Languages
• Loops: A loop is sequence of a statements that can be carried out a number of time,
but only specified once.
Data Types
• Data types define the format or context of the data. For example, a data type could
be classed as:
- Text
▪ Can include any alphanumeric characters, for example abc123.
▪ Text benefits from the flexibility of combining both characters and
numbers together, a good example being in an address field.
- Integer
▪ A whole number such as 1, 2, 3 or 4.
▪ Benefits of using an Integer are that less storage space is required, a
counter can be used, mathematical operations can be performed and
comparisons can be made.
- Floating point
▪ A ‘ real number ’ that has a decimal point.
▪ The benefits of using a floating point are that percentages, areas,
measurements and computations can be stored.
- Byte
▪ used for storing binary data in a computer system.
- Date
▪ will represent data in a specific date format
▪ It is beneficial to users as it will prompt them to enter the date in a set
format, for example --/--/----, 22/02/1972.
- Boolean
▪ a logic value that will return a ‘true’ or ‘false’ value.
▪ Boolean data types are very small, requiring one bit, 0 or 1, representing
true or false.
The goal of UML is to provide a standard notation that can be used by all object-
oriented methods and to select and integrate the best elements of precursor notations.
UML has been designed for a broad range of applications. Hence, it provides constructs
for a broad range of systems and activities (e.g., distributed systems, analysis, system
design and deployment).
GOALS OF UML
• Class Diagram
- The most widely use UML diagram is the class diagram. It is the building block
of all object-oriented software systems. We use class diagrams to depict the
static structure of a system by showing system’s classes, their methods and
attributes. Class diagrams also help us identify relationship between different
classes or objects.
• Component Diagram
- Component diagrams are used to represent how the physical components in
a system have been organized. We use them for modelling implementation
details. Component Diagrams depict the structural relationship between
software system elements and help us in understanding if functional
requirements have been covered by planned development.
• Deployment Diagram
- Deployment Diagrams are used to represent system hardware and its
software. It tells us what hardware components exist and what software
components run on them. We illustrate system architecture as distribution of
software artifacts over distributed targets.
• Package Diagram
- We use Package Diagrams to depict how packages and their elements have
been organized. A package diagram simply shows us the dependencies
between different packages and internal composition of packages.
• Activity Diagrams
- We use Activity Diagrams to illustrate the flow of control in a system. We can
also use an activity diagram to refer to the steps involved in the execution of
a use case. We model sequential and concurrent activities using activity
diagrams.
• Communication Diagram
- A Communication Diagram (known as Collaboration Diagram in UML 1.x) is
used to show sequenced messages exchanged between objects. A
communication diagram focuses primarily on objects and their relationships.
• Timing Diagram
- Timing Diagram are a special form of Sequence diagrams which are used to
depict the behavior of objects over a time frame. We use them to show time
and duration constraints which govern changes in states and behavior of
objects.