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

Lecture 1

This document outlines the objectives and course outline for a software development tools course, covering topics such as software applications, programming languages, data organization, and application development. It discusses various software development environments, methodologies, and types including frontend, backend, mobile, and embedded systems development. Additionally, it emphasizes the importance of debugging, refactoring, and methodologies like Agile and DevOps in enhancing software quality and efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views6 pages

Lecture 1

This document outlines the objectives and course outline for a software development tools course, covering topics such as software applications, programming languages, data organization, and application development. It discusses various software development environments, methodologies, and types including frontend, backend, mobile, and embedded systems development. Additionally, it emphasizes the importance of debugging, refactoring, and methodologies like Agile and DevOps in enhancing software quality and efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Objectives of this course: Software development tools : -

a. Demonstrate knowledge of widely used software applications including MS word processing, DB


ms, database management system, and
b. Analyze the differences between interpreted, translated and compile languages.
c. Describe how computers address data in memory.
d. Design structures, classes and objects that include variables and method.
e. Summaries how data is organize in software development. \
f. Understand the standard primitive type and operations of the java programming language.
( primitive types: Boolean, char and strings)
g. Define and analyze java arrays
h, Demonstrate knowledge of the basics of structures, OO language.
I. Write software applications using While, Do While. For, For each.
Define logic statement using Else, Else if statement.
j. Develop an application using conditional statement. Demonstrate knowledge of key construct and
formal specific to a language
k. develop application that response to user input.

Course Outline
Unit 1: Introduction to software Development tools.
Unit 2: Software development.
Unit 3: Debugging.
Unit 4: Software configuration management.
Unit 5: Object modeling and software testing.

1/6
Unit 1: Introduction to software Development tools.
1. Introduction.
In software development, many of the difficulties reported by novice user without software
tools can be over come by systematic practices in the selection, acquisition and the preparation for
use of software tools. This report first derives the need for specific guidance in the introductions of
tools by examining the number of programming environment and then describe the practices suited
to this environment
1.2. Characteristics of users environment.
In order to characterize User environment it is first important to classify the software tools
1.2.1. Classification of environment
A survey of software tools usage consider the effect on tools usage on a very large number of
environmental factors including :
- size of software organization.
- types of organization.
- Applications and language.
- Development environment.
- Program running environment.
- Computer type.
- Involvement in tools development.
The extend of tool usage is classify into 3 levels
- Level Zero(0) minimal tool usage: Only tools normally provided with operating system were in
use e.g Assemblers,Loaders,Compilers, Debuggers,Interpreters.
- Level one (1) intermediate tools usage: Special purpose tools suited for the vision of the
organization but without explicit effect on software qualities were in used e.g File manager,
simulators,elementary file compiler .
- Level two (2) General purpose tools usage: it involving state and dynamic analysis features
were deliberately acquire or developed in order to enhance software quality and productivity. This
group represent the highest level of tools utilization.
The average level of tools utilization

Table 1.1 Level of tool utilization.

Size of Organization Average level of tool utilization


Small-up to 14 programmers 0.8
Medium 15-39 programmers 0.8
Large 40-99 programmer 1.4
Very large over 100 programmers 2.0

The term programmer include analyst, programming supervisors and programming trainees
but not computers operators, libraries or other support personnel. The above data on 22
organization. Two (2) developers were not included in this population.
1.2.2. Selection of target environment:
In the table 1.1 , the data indicate that small and medium software organizations will
represent the target environment that stand to benefit must of the availability of the comprehensive
methodology for the information of software tools. In addition to the low level of current tools

2/6
usage, the following factor indicate that small and medium organization needs outside assistance in
the introduction of tools.
- Their awareness of tools in general and their knowledge about specific tools suited to their
need are frequently much less than that of the organization.
- Their knowledge of tool acquisition and installation practices turn to be inadequate to
permit them to obtain the full of available tools.
- Even when suitable tools are obtain and install, this organization frequently can not
mobilized the resources required for optimum tool utilization such as Training, Startup effort, and
change in practices to fully utilized a tool.
The above doesn’t imply that large and even very large organizations can not benefit from
further developments of methodology for the introduction of software tools and specifically from
effort in that area under-taken.
The reasons for focusing on Government organizations are :
- The demand for uniformity of software practices in government agencies is expected to
increase and tools can be assistance in providing and enforcing these uniformity. Hence, a greater
need for tool is expected to arise in this environment.
- Government agency usually have a greater need to control procedural asset to software
development and many tools address that need very specifically.
- there are a large number of tools currently in government inventory and some of these are
resident on computers that can be access by other government administrators via terminals. Thus,
the opportunity for tools usage is greater among government organization.v
- Successful use of a tools in government organization is likely to become generally known
where as smaller private organization may wish to restrike the dissimilation of these information for
competitive reasons. Thus, the ripple effects can be expected can be greater if government
organizations are address as the primary target for two introduction methodology.
1.2.3 The smaller MIS (Management of Information System) Environment:
The typical size of the smaller scientific software development group is
also to 20 to 39 programmers and low level of supervision is also
involve.
The lower supervisee label turns to be applications oriented but the top
supervisee top functions operate much more automatically than the
equivalent
The second label scientific supervisor typically assumes full
responsibility with the technology employ within his or her organization.
Where this supervisor takes an interest to this technology, structure
programming supported by appropriate tools is likely to be used.
On the other hand, if the interest of the supervisor is compiling to a
scientific specialty (simulations, analyses engineering). Software
technology can be very low priority items. Software Development
Introduction: Software development involve the designing, testing,
documenting, programming

2.3 Common type of software development


2.3.1 FrontEnd development
It is the aspect of development that focuses on creating the user interface (UI) and user
experience (UX) mostly for website and web application. By using technology such as HTML,CSS,
JS.
Frontend developer works with many frameworks and libraries such as
react,angular,nodejs,bootraps,foundation,etc. To create responsive accessible and visual appealing
interfaces that ensures smooth user experience across different dices and browsers.

3/6
2.3.2 Backend Development.
It is the area of development that focuses on the server site logic, databases,and
infrastructures that power the functionality of website and web application. It involve creating,
managing and storing data as well as handling server site processing authentication and
communication with server site. It works with server site language such as python, PHP, roobie,
java or c#, databases such as MySQL, PostgreSQL, MongoDB and various frameworks such as
Django, roobie unrise,express.js,etc. To build scalable and secure applications while handling server
configuration deployment and performance optimization.

2.3.3 Web development


it is the process of designing building and maintaining web application that can access and
interact with a web browser

2.3.4 Mobile Development


it focuses on creating application specially design for mobile device such as smart phones, and
tablets. This application can either be native or cross platform build for specific platform such as
Flutter,Django and react. Mobile developers used programming language such as java,swift,object c
to develop IOS application and various tools and libraries for building and optimizing mobile
applications.

2.3.5 Embedded System Development.


This kind of software development involve creating software for embedded systems which are
specialize computer systems design to perform dedicated functions within larger systems such as
automobile, home appliance or medical devices. It requires expertize in low level programming
languages like c and c++ as well as low micro controllers micro processors and real-time processing
systems . The developer must also considered constrain like limited memory, processing power and
power consumption for designing and customizing embedded software.

2.3.6 API Development.


API development involve creating and developing APIs which are set of roles and protocols
that allows different software application to communicate with each other. It enables the integration
of various software components, services or data sources facilitating the development of complex
applications. API developers develop and build APIs using languages like python,PHP and java,
document them with standard such as open-API and increment protocol like rest,soap, or grabql. To
ensure seamless communication between software systems.

2.4 Use cases and example of software development.


Some used cases and example will be given based on types of software development.
2.4.1 Enterprise software development.
It refers to a creation of software development application that are used within an
organization to perform business function. These program helps companies trim-line to their
operation to improve efficiency
two examples of enterprise software are
-S
- ERP: Enterprise Resource Planning System: which manage and intergrade core business processes
such as inventory, sales and human resource, and procurement.
2.4.2 Web and Mobile Development:
Developers utilize a combination of frontend and backend technologies such as,
HTML,CSS,JAVASCRIPT etc and various framework.

4/6
Mobile development is d… specifically for need of mobile device users it encompasses the
creation of app of smart phone,and tablet with developer often choose between native development:
- using language like ISO, with swift or objective c.
- using android with java or kotline.
- cross platform development which allows for code-reuse across multiple system with react native
or Flutter.
2.4.3 Cloud computing:
It is kind of computing where scalable and elastic IT enabled capability are deliver as
service using internet technologies. A common used case in cloud computing in software
development is SAS( software as a service) SAS application are centrally hosted in cloud and
deliver to users over the internet on subscription
Cloud computing also revolutionized software development processes through IAAS
(infrastructure As A Service). Provider like Amazon web services (AWS) or Microsoft Asus offer
visualize computing resources and on demand development environment accessible over the
internet.
2.4.4 IoT and IIoT:
The IoT and IIoT (Industrial Internet of Things) are transforming the way we live and work
by connecting devices and system to the internet. In software development, these technologies have
open up new opportunities for creating innovative applications.
smart home technology is a prime example of iot in software development. Connected
devices allow users to control various home functions such as lighting, heating, or security remotely
through software applications. On the industrial side, iot has led to the development of systems that
improve operational efficiency in factory. For instance, predictive maintenance software can
canalize data from connected machine to predict and prevent potential vendors.

2.4.5 Cluster Management:


it refers to the processes and tools use to manage a group of interconnected computers
known as Clusters that works together as a single system. Cluster has typically employed in high
performance computing, data processing and large scale application that requires significant
computational power and redundancy.
A common used case for cluster management is in the management of containerized
application using for orchestration tools like Kebernates. (“https:// www.kebernates.io) Kebernates
automate the deployment, scaling and operation of application containers across clusters and
hosting ensure that application are running smoothly scaling appropriately and recovering from
failures .
Another example is the used of Hadoop clusters for big data processing where large data sets
are distributed across multiple node to be processed in parallel significantly reducing the time
require to analyzed data ( https://www.run.ai/guides/cluster-management ).

2.4.6 Distributing computing:


DC involve dividing a computer task across multiple machines often spread across different
geographical locations to improve performance,reliability and scalability. This approach is essential
for large scale application that require vast amount of data or handle millions of request
simultaneously.
In software development, distributed computing also underpins many cloud service where
applications are run across multiples data centers world wide ensuring that services remain
available to user regardless of their locations. This approach not only enhances performance, but
also provide redundancy and disasters recovering capability.

5/6
2.5 Code Debugging and refactoring:
Code Debugging and refactoring in companies are essential processes in software
development that contribute in maintaining code quality improving application performance and
making code bases more manageable over time .

2.5.1 Debugging:
It involve identifying and resolving errors in a code. This processes also require testing and
analyzing to isolate using tools like:
- Debuggers
- Logging frameworks.
- Pro-filers.
A common example of debugging is resolving issues in real-time application to prevent disruption
such as troubleshooting memory leaks in a web application to avoid slowdown or scratches .

2.5.2 Refractory:
it focuses on restructuring existing code without altering its functionality. This techniques
improves readability, reduces technical debt and enhances future maintainability. Refractory can
include simplifying complex functions renaming variable for clarity or breakdown large model into
smaller more manageable components.

2.6 Software Development Methodology:


The following are breve introduction to 4 popular methodology.
2.6.1 Agile Software Development:
Agile is an iterative and increment approach to software development that emphasizes
flexibility,collaborations, and costumer feedback.
Agile methodology such as scrum or Kanban encourage cross functional team to work
closely adapt to changing requirement s,and continuously improve their processes. This result in
faster delivery of high quality software that better meet costumer needs
2.6.2 DevOps:
its a methodology that aims to breach the gab between software development and IT operation
teams. It promote a culture of collaborations automation and share responsibility of the entire
software development life cycle from planning to deployment and monitoring.
DevOps practices such as infrastructures as code and continues deployment help improve
software quality, accelerate release cycle and increase operational efficiency

6/6

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy